home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / amos / ADV-ITA.lha / Adventures.AMOS / Adventures.amosSourceCode
AMOS Source Code  |  1999-01-05  |  376KB  |  11,812 lines

  1. '-> Adventures Conceiver by Stefano Regattin 
  2. 'i> 12 giugno 1996 
  3. 'm> 13,14,15,16,17,19,20,21,22,26,27,28,30 giugno 1996 
  4. 'm> 1,2,3,4,5,6,13,14,15,17,18,20,21,23 luglio 1996
  5. 'm> 4,17,31 agosto 1996
  6. 'm> 7,14,15,16,28 settembre 1996 
  7. 'm> 2,8,20,21 ottobre 1996 
  8. 'm> 1,2,5 novembre 1996
  9. 'm> 23,25 febbraio 1997
  10. 'm> 1,2,3,4,5,6,7,8 marzo 1997 
  11. 'm> 29 maggio 1997 
  12. 'm> 6,12,13,14 giugno 1997 
  13. 'm> 29 agosto 1997 
  14. 'm> 10,19,28,29,30 settembre 1997
  15. 'm> 1,6,31 ottobre 1997
  16. 'm> 1,3,4,5,6,7,8,9,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 novembre 1997 
  17. 'm> 1,2,3,4,5,6,7,8,9,11,12,13,14,16,17,22 dicembre 1997 
  18. 'm> 4 gennaio 1998 
  19. 'm> 28,31 marzo 1998 
  20. 'm> 22,23,24,25,26,27,28,30 aprile 1998
  21. 'm> 1,2,5,7,8,9,10 maggio 1998 
  22. 'm> 13,15,16,17,18,19,20,21,23,26,27,28,29 giugno 1998 
  23. 'm> 2,3,5,6,7,10,11,12,13,16,17,18,19,20,21,22,25,28,30,31 luglio 1998 
  24. 'm> 2,3,4,5,6,7,9,10,15 agosto 1998  
  25. 'm> 7,11,20 settembre 1998   
  26. 'm> 5,6,7,8,9,10,14,16,17,20,23,27,28 novembre 1998        
  27. 'm> 4,5,6,7,11,15,17,22,24,29,31 dicembre 1998       
  28. 'm> 5 gennaio 1999 
  29. '----------------------------------------------------------------------------- 
  30. 'Adventures Conceiver ï¿½ stato realizzato da me con AMOS Professional 2.0. Pu�  
  31. 'essere liberamente distribuito. Pu� essere modificato, purch� mi si citi nel
  32. 'programma finale risultante. Se si decide di utilizzarlo, spedire 10.000 lire 
  33. 'o 5 Euro al seguente nominativo ed indirizzo: Stefano Regattin, piazza Pietro 
  34. 'Gasparri 4, 20161 Milano, Italia. Buon divertimento, grazie e ciao! 
  35. '--------------------------------------------------------------------
  36.  
  37. Set Buffer 910
  38.  
  39. FILEREQUESTERMUSICA=False
  40.  
  41. Data "E' l'alba","E' mattina","E' giorno","E' pomeriggio","E' il tramonto"
  42. Data "E' sera","E' notte"
  43. Data "Il cielo si sta schiarendo","Il sole si sta alzando","Il sole ï¿½ alto"
  44. Data "Il sole sta calando","Il cielo si sta oscurando"
  45. Data "La luna si sta alzando","La luna ï¿½ alta","La luna sta calando"
  46. Data "E' nuvoloso","Sta piovendo","Sta nevicando","Sta grandinando"
  47. Data "C'� la nebbia","E' buio"
  48.  
  49. Data "N","Nord","NE","NordEst","E","Est","SE","SudEst","S","Sud","SO"
  50. Data "SudOvest","O","Ovest","NO","NordOvest","Sopra","Sopra","Sotto","Sotto"
  51.  
  52. Data "albero","alberi",100000,"albero rotto","alberi rotti",75000,%10000000,0
  53. Data "arco","archi",3000,"arco rotto","archi rotti",1500,%10001000000,9
  54. Data "arancia","arance",250,"buccia di arancia","bucce di arancia",10,1,1
  55. Data "banana","banane",300,"buccia di banana","bucce di banana",15,1,1
  56. Data "bastone","bastoni",1000,"bastone rotto","bastoni rotti",750,%1000000,2
  57. Data "cedro","cedri",200,"buccia di cedro","bucce di cedro",10,1,1
  58. Data "coltello","coltelli",2000,"coltello rotto","coltelli rotti",1000,%1000000,10
  59. Data "dattero","datteri",25,"guscio di dattero","gusci di dattero",5,1,1
  60. Data "fico","fichi",220,"buccia di fico","bucce di fico",10,1,1
  61. Data "foglietto","foglietti",2,"foglietto strappato","foglietti strappati",1,%1000,0
  62. Data "fragola","fragole",10,"picciolo di fragola","piccioli di fragola",1,1,1
  63. Data "freccia","frecce",100,"freccia rotta","freccie rotte",50,%101000000,1
  64. Data "limone","limoni",200,"buccia di limone","bucce di limone",10,1,1
  65. Data "maglia","maglie",5000,"maglia rotta","maglie rotte",2500,%100,19
  66. Data "mandarino","mandarini",175,"buccia di mandarino","bucce di mandarino",10,1,1
  67. Data "mapo","mapo",200,"buccia di mapo","bucce di mapo",10,1,1
  68. Data "masso","massi",50000,"masso rotto","massi rotti",50000,0,0
  69. Data "mela","mele",250,"torsolo di mela","torsoli di mela",50,1,1
  70. Data "pera","pere",250,"torsolo di pera","torsoli di pera",50,1,1
  71. Data "pompelmo","pompelmi",275,"buccia di pompelmo","bucce di pompelmo",10,1,1
  72. Data "spada","spade",7500,"spada rotta","spade rotte",5000,%1000000,20
  73.  
  74. Data "anarchico","anarchici","bandito","banditi","barbaro","barbari"
  75. Data "bastardo","bastardi","bravotto","bravotti","cretino","cretini"
  76. Data "debosciato","debosciati","deficiente","deficienti"
  77. Data "delinquente","delinquenti","estremista","estremisti"
  78. Data "fanatico","fanatici","fanfarone","fanfaroni","fellone","felloni"
  79. Data "fetente","fetenti","fessacchiotto","fessacchiotti","fesso","fessi"
  80. Data "guerrafondaio","guerrafondai","idiota","idioti","imbecille","imbecilli"
  81. Data "malfattore","malfattori","maniaco","maniaci","maramaldo","maramaldi"
  82. Data "negriero","negrieri","ribelle","ribelli","rimbambito","rimbambiti"
  83. Data "pervertito","pervertiti","pirata","pirati","pirlone","pirloni"
  84.  
  85. Data "Acqua",5
  86. Data "Bosco",2
  87. Data "Collina",1
  88. Data "Foresta",4
  89. Data "Ghiaccio",3
  90. Data "Montagna",2
  91. Data "Neve",3
  92. Data "Oasi",0
  93. Data "Palude",3
  94. Data "Pianura",0
  95. Data "Roccia",4
  96. Data "Sabbia",1
  97.  
  98. Data "Adventures Conceiver ï¿½ stato realizzato da me con AMOS Professional 2.0"
  99. Data ". Pu� essere liberamente distribuito. Pu� essere modificato, purch� mi "
  100. Data "si citi nel programma finale risultante. Se si decide di utilizzarlo, s"
  101. Data "pedire 10.000 lire o 5 Euro al seguente nominativo ed indirizzo: Stefan"
  102. Data "o Regattin, piazza Pietro Gasparri 4 - U327, 20161 Milano, Italia. Buon"
  103. Data " divertimento, grazie e ciao!"
  104.  
  105. MESSAGGIO3$="Adventures Conceiver by Stefano Regattin"
  106.  
  107. PROLOGO$="L'avventura preimpostata ï¿½ dimostrativa. Non c'� uno scopo definito"
  108. PROLOGO$=PROLOGO$+". Gli altri personaggi prenderanno un'oggetto e cercherann"
  109. PROLOGO$=PROLOGO$+"o di usarlo su un personaggio presente dove si trovano, pe"
  110. PROLOGO$=PROLOGO$+"r cui anche sul tuo personaggio; dopo di ci� si muoveranno"
  111. PROLOGO$=PROLOGO$+". Usa tutti i comandi e guarda cosa succede."
  112.  
  113. _INTERFACCIA$="BAse 160,40;"
  114. _INTERFACCIA$=_INTERFACCIA$+"SIze 320,120;"
  115. _INTERFACCIA$=_INTERFACCIA$+"INk 1,0,0;"
  116. _INTERFACCIA$=_INTERFACCIA$+"GraphicBox 0,0,319,119;"
  117. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'Adventures Conceiver 1.1';"
  118. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,8,0 VA,0,1;"
  119. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'by Stefano Regattin';"
  120. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,24,0 VA,0,1;"
  121. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'Se decidi di utilizzarlo, spedisci';"
  122. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,40,0 VA,0,1;"
  123. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'diecimila lire o cinque Euro';"
  124. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,56,0 VA,0,1;"
  125. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'al seguente indirizzo:';"
  126. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,72,0 VA,0,1;"
  127. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'piazza Pietro Gasparri, 4 - U327';"
  128. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,88,0 VA,0,1;"
  129. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'20161 Milano - Italia';"
  130. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,104,0 VA,0,1;"
  131. _INTERFACCIA$=_INTERFACCIA$+"RunUntil 0,4;"
  132. _INTERFACCIA$=_INTERFACCIA$+"EXit;"
  133.  
  134. BANCO=65535 : BANCOMODULO=1023 : NUMMASE=31 : NUMMASCO=255 : NUMMASL=255
  135. NUMMASO=255 : NUMMASP=255 : NUMMASR=255 : NUMMASS=255 : PESOS=1
  136. '----------------------------------------------------------------------------
  137. 'Per un difetto di AMOS Professional non si pu� assegnare un valore maggiore 
  138. ' di 1023 al banco di memoria da usare con il comando Track Load e Track Play
  139. '----------------------------------------------------------------------------- 
  140. Global EPILOGO$,FILE$,MESSAGGIO1$,MESSAGGIO3$,MERITI$,NOMEFILE$,PROLOGO$
  141. Global _INTERFACCIA$
  142. Global ANEMICI,BANCO,BANCOMODULO,CATEGORIADEGLIOGGETTI,CARATTEREMESSAGGIO
  143. Global COMPIUTAAZIONE,CONDIZIONEG,EDIFICIO,FILEREQUESTERMUSICA
  144. Global INEMICITISVEGLIANO,INEMICISVEGLIANOPERSONAGGIOP,LUOGO
  145. Global M0DOVISUALIZZAZIONETEMPO,M0DIFICA,NUMEROCO,NUMEROE,NUMEROL,NUMERON
  146. Global NUMEROO,NUMEROP,NUMEROR,NUMMASCO,NUMMASE,NUMMASL,NUMMASO,NUMMASP
  147. Global NUMMASR,NUMMASS,OGGETTO,OGGETTOUSANTE,OGGETTOUSATO,PERSONAGGIO
  148. Global PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO,PESOS,REGIONE,SENZAMEMORIA,STANZA
  149. Global TEMP0TRASCORSO,ULTIMALINEA,_MUSICA
  150. Dim CONDIZIONEG$(13),DESCRIZIONECO$(NUMMASCO),DESCRIZIONEE$(NUMMASE)
  151. Dim DESCRIZIONEL$(NUMMASL),DESCRIZIONEP$(NUMMASP)
  152. Dim DESCRIZIONES$(NUMMASS,NUMMASE),DREZIONE$(9),DREZIONEL$(9),FASEG$(6)
  153. Dim NOMEE$(NUMMASE),NOMEL$(NUMMASL),NOMEP$(NUMMASP),NOMEPCO$(NUMMASCO)
  154. Dim NOMEPN$(27),NOMEPRO$(NUMMASCO),NOMER$(NUMMASR),NOMES$(NUMMASS,NUMMASE)
  155. Dim NOMESCO$(NUMMASCO),NOMESN$(27),NOMESRO$(NUMMASCO),TESTOO$(1),TIPOL$(11)
  156. Dim AZIONEP(7,NUMMASP),CATEGORIAO(NUMMASO),CAMMINOP(NUMMASP)
  157. Dim C0STITUZIONEP(NUMMASP),DESTREZZAP(NUMMASP),DREZIONEL(9,NUMMASL)
  158. Dim DREZIONEPRESAP(NUMMASP),DREZIONEOPPOSTAAQUELLAPRESAP(NUMMASP)
  159. Dim DREZIONES(9,NUMMASS,NUMMASE),FINEA(7,NUMMASP),F0RZAP(NUMMASP)
  160. Dim INIZIOSONNOP(NUMMASP),LUOGODIDESTINAZIONEP(NUMMASP),NUMEROS(NUMMASE)
  161. Dim OGGETTIDATIOLASCIATI(NUMMASCO),OGGETTIDELPERSONAGGIO0(NUMMASCO)
  162. Dim OGGETTIDIA(NUMMASCO),OGGETTINELLUOGO(NUMMASCO),PARAAAZIONEP(7,NUMMASP)
  163. Dim PARABAZIONEP(7,NUMMASP),PARACAZIONEP(7,NUMMASP),PARATIPOCO(NUMMASCO)
  164. Dim PARATIPOL(11),PERSONAGGIOVISIBILEP(NUMMASP),PESOCO(NUMMASCO)
  165. Dim PESONETTOP(NUMMASP),PESOP(NUMMASP),PESORESTOCO(NUMMASCO)
  166. Dim POSIZIONEA(NUMMASP),POSIZIONEE(NUMMASL),POSIZIONEO(NUMMASO)
  167. Dim POSIZIONEP(NUMMASP),REGIONEL(NUMMASL),RESISTENZAP(NUMMASP)
  168. Dim RESTIDELPERSONAGGIO0(NUMMASCO),RESTIDIA(NUMMASCO),RESTINELLUOGO(NUMMASCO)
  169. Dim SOLDIL(NUMMASL),SOLDIP(NUMMASP),SOLDIS(NUMMASS,NUMMASE)
  170. Dim SOLDIRICEVUTIP(NUMMASP),SONNOP(NUMMASP),TEMP0DIATTRAVERSAMENTOP(NUMMASP)
  171. Dim TESTOO(NUMMASO),TIPOCO(NUMMASCO),TIPOL(NUMMASL),TIPOO(NUMMASO)
  172. Dim TIPOP(NUMMASP)
  173. Global CONDIZIONEG$(),DESCRIZIONECO$(),DESCRIZIONEE$(),DESCRIZIONEL$()
  174. Global DESCRIZIONEP$(),DESCRIZIONES$(),DREZIONE$(),DREZIONEL$(),FASEG$()
  175. Global NOMEE$(),NOMEL$(),NOMEP$(),NOMEPCO$(),NOMEPN$(),NOMEPRO$(),NOMER$()
  176. Global NOMES$(),NOMESCO$(),NOMESN$(),NOMESRO$(),TESTOO$(),TIPOL$()
  177. Global AZIONEP(),CATEGORIAO(),CAMMINOP(),C0STITUZIONEP(),DESTREZZAP()
  178. Global DREZIONEL(),DREZIONEPRESAP(),DREZIONEOPPOSTAAQUELLAPRESAP(),DREZIONES()
  179. Global FINEA(),F0RZAP(),INIZIOSONNOP(),LUOGODIDESTINAZIONEP(),NUMEROS()
  180. Global OGGETTIDATIOLASCIATI(),OGGETTIDELPERSONAGGIO0(),OGGETTIDIA()
  181. Global OGGETTINELLUOGO(),PARAAAZIONEP(),PARABAZIONEP(),PARACAZIONEP()
  182. Global PARATIPOCO(),PARATIPOL(),PERSONAGGIOVISIBILEP(),PESOCO(),PESONETTOP()
  183. Global PESOP(),PESORESTOCO(),POSIZIONEA(),POSIZIONEE(),POSIZIONEO()
  184. Global POSIZIONEP(),REGIONEL(),RESISTENZAP(),RESTIDELPERSONAGGIO0(),RESTIDIA()
  185. Global RESTINELLUOGO(),SOLDIL(),SOLDIP(),SOLDIS(),SOLDIRICEVUTIP(),SONNOP()
  186. Global TEMP0DIATTRAVERSAMENTOP(),TESTOO(),TIPOCO(),TIPOL(),TIPOO(),TIPOP()
  187. Proc SETTASCHERMO
  188. Proc ARCOBALENO
  189. For A=0 To 6
  190.  Read DATO$ : FASEG$(A)=DATO$
  191. Next A
  192. For A=0 To 13
  193.  Read DATO$ : CONDIZIONEG$(A)=DATO$
  194. Next A
  195. For A=0 To 9
  196.  Read DATO$ : DREZIONEL$(A)=DATO$
  197.  Read DATO$ : DREZIONE$(A)=DATO$
  198. Next A
  199. Proc INIZIALIZZALEVARIABILI
  200. NUMEROCO=20 : NUMEROE=0 : NUMEROL=127 : NUMEROO=127 : NUMEROP=20 : NUMEROR=1
  201. NUMEROS(0)=0
  202. Proc _ORDINALUOGHI[127,8,0,True]
  203. For A=0 To NUMEROCO
  204.  Read DATO$ : NOMESCO$(A)=DATO$
  205.  Read DATO$ : NOMEPCO$(A)=DATO$
  206.  Read DATO : PESOCO(A)=DATO
  207.  Read DATO$ : NOMESRO$(A)=DATO$
  208.  Read DATO$ : NOMEPRO$(A)=DATO$
  209.  Read DATO : PESORESTOCO(A)=DATO
  210.  Read DATO : TIPOCO(A)=DATO
  211.  Read DATO : PARATIPOCO(A)=DATO
  212. Next A
  213. If NUMEROE>-1
  214.  For A=0 To NUMEROE
  215.   POSIZIONEE(A)=Rnd(NUMEROL)
  216.   For B=0 To NUMEROS(A)
  217.    SOLDIS(B,A)=Rnd(19)
  218.   Next B
  219.  Next A
  220. End If 
  221. For A=0 To 27
  222.  Read DATO$ : NOMESN$(A)=DATO$
  223.  Read DATO$ : NOMEPN$(A)=DATO$
  224. Next A
  225. For A=0 To 11
  226.  Read DATO$ : TIPOL$(A)=DATO$
  227.  Read DATO : PARATIPOL(A)=DATO
  228. Next A
  229. Randomize Timer
  230. For A=0 To NUMEROL
  231.  TIPOL(A)=Rnd(11)
  232.  SOLDIL(A)=Rnd(1)
  233. Next A
  234. For A=0 To NUMEROO
  235.  CATEGORIAO(A)=Rnd(NUMEROCO)
  236.  POSIZIONEO(A)=Rnd(NUMEROL)
  237. Next A
  238. For A=0 To NUMEROP
  239.  C0STITUZIONEP(A)=Rnd(99)+1
  240.  DESTREZZAP(A)=Rnd(99)+1
  241.  F0RZAP(A)=Rnd(99)+1
  242.  PESOP(A)=Rnd(70)+50
  243.  POSIZIONEP(A)=Rnd(NUMEROL)
  244.  LUOGODIDESTINAZIONEP(A)=-1
  245.  DREZIONEPRESAP(A)=-1
  246.  DREZIONEOPPOSTAAQUELLAPRESAP(A)=0
  247.  RESISTENZAP(A)=C0STITUZIONEP(A)
  248.  DATO=Rnd(1) : If DATO=1 Then Bset 1,TIPOP(A) Else Bclr 1,TIPOP(A)
  249.  DATO=Rnd(1) : If DATO=1 Then Bset 3,TIPOP(A) Else Bclr 3,TIPOP(A)
  250.  DATO=Rnd(9)+1
  251.  SOLDIP(A)=DATO
  252.  Add PESONETTOP(A),DATO*PESOS
  253.  If A>0
  254.   INIZIOSONNOP(A)=Rnd(360)+1080
  255.   AZIONEP(0,A)=17
  256.   PARAAAZIONEP(0,A)=1
  257.   AZIONEP(1,A)=27
  258.   PARAAAZIONEP(1,A)=256
  259.   AZIONEP(2,A)=27
  260.   PARAAAZIONEP(2,A)=256
  261.   AZIONEP(3,A)=27
  262.   PARAAAZIONEP(3,A)=256
  263.   AZIONEP(4,A)=27
  264.   PARAAAZIONEP(4,A)=256
  265.   AZIONEP(5,A)=27
  266.   PARAAAZIONEP(5,A)=256
  267.   AZIONEP(6,A)=27
  268.   PARAAAZIONEP(6,A)=256
  269.   AZIONEP(7,A)=16
  270.  End If 
  271. Next A
  272. '----------------
  273. 'Scopo del gioco 
  274. AZIONEP(7,0)=0
  275. '------------
  276. 'PARametro A 
  277. PARAAAZIONEP(7,0)=0
  278. '------------
  279. 'PARametro B 
  280. PARABAZIONEP(7,0)=0
  281. '------------
  282. 'PARametro C 
  283. PARACAZIONEP(7,0)=0
  284. '------------------- 
  285. For A=64 To 127
  286.  REGIONEL(A)=1
  287. Next A
  288. Read DATO$ : MERITI$=DATO$
  289. Read DATO$ : MERITI$=MERITI$+DATO$
  290. Read DATO$ : MERITI$=MERITI$+DATO$
  291. Read DATO$ : MERITI$=MERITI$+DATO$
  292. Read DATO$ : MERITI$=MERITI$+DATO$
  293. Read DATO$ : MERITI$=MERITI$+DATO$
  294. TESTOO$(0)=MERITI$
  295. If _MUSICA=True Then Proc SUONAUNMODULO[FILEREQUESTERMUSICA]
  296. TASTOPREMUTO$="d"
  297. Repeat 
  298.  If TASTOPREMUTO$="d" Then Proc MOSTRAILDESTINODELGIOCO
  299.  If TASTOPREMUTO$="e" Then Proc MOSTRAGLIEDIFICI
  300.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Proc MOSTRALESTANZE
  301.  If TASTOPREMUTO$="k" Then Proc MOSTRALECATEGORIEDEGLIOGGETTI
  302.  If TASTOPREMUTO$="l" Then Proc MOSTRAILUOGHI
  303.  If TASTOPREMUTO$="o" Then Proc MOSTRAGLIOGGETTI
  304.  If TASTOPREMUTO$="p" Then Proc MOSTRAIPERSONAGGI
  305.  If TASTOPREMUTO$="r" Then Proc MOSTRALEREGIONI
  306. Until TASTOPREMUTO$=Chr$(27)
  307. Track Loop Of : Track Stop : Rainbow Del 0 : Screen Close 0
  308. Erase BANCOMODULO : End 
  309. Procedure ARCOBALENO
  310. Data $FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888
  311. Data $FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888
  312. Set Rainbow 0,1,16,"","",""
  313. For LINEA=0 To 15 : Read DATO : Rain(0,LINEA)=DATO : Next LINEA
  314. If Ntsc Then LUNGHEZZAARCOBALENO=223 Else LUNGHEZZAARCOBALENO=271
  315. Rainbow 0,2,0,LUNGHEZZAARCOBALENO
  316. End Proc
  317. Procedure AZIONIALTRIPERSONAGGI
  318. While COMPIUTAAZIONE>0
  319.  For P=1 To NUMEROP
  320.   If RESISTENZAP(P)>0
  321.    If Btst(2,TIPOP(P))=False
  322.     Proc FAIDORMIREGLIALTRIPERSONAGGI[P]
  323.     If AZIONEP(POSIZIONEA(P),P)>0
  324.      If AZIONEP(POSIZIONEA(P),P)=1
  325.       If FINEA(POSIZIONEA(P),P)=False
  326.        Proc DAIAPAO[POSIZIONEA(P),P]
  327.       End If 
  328.      Else If AZIONEP(POSIZIONEA(P),P)=2
  329.       If FINEA(POSIZIONEA(P),P)=False
  330.        Proc DAIAPAOB[POSIZIONEA(P),P]
  331.       End If 
  332.      Else If AZIONEP(POSIZIONEA(P),P)=3
  333.       If FINEA(POSIZIONEA(P),P)=False
  334.        Proc DAIAPAOTB[POSIZIONEA(P),P]
  335.       End If 
  336.      Else If AZIONEP(POSIZIONEA(P),P)=4
  337.       If FINEA(POSIZIONEA(P),P)=False
  338.        Proc DAIAPAP[POSIZIONEA(P),P]
  339.       End If 
  340.      Else If AZIONEP(POSIZIONEA(P),P)=5
  341.       If FINEA(POSIZIONEA(P),P)=False
  342.        Proc DAIAPPA[POSIZIONEA(P),P]
  343.       End If 
  344.      Else If AZIONEP(POSIZIONEA(P),P)=6
  345.       If FINEA(POSIZIONEA(P),P)=False
  346.        Proc DAIAPABO[POSIZIONEA(P),P]
  347.       End If 
  348.      Else If AZIONEP(POSIZIONEA(P),P)=7
  349.       If FINEA(POSIZIONEA(P),P)=False
  350.        Proc DAIAPABOC[POSIZIONEA(P),P]
  351.       End If 
  352.      Else If AZIONEP(POSIZIONEA(P),P)=8
  353.       If FINEA(POSIZIONEA(P),P)=False
  354.        Proc DAIAPABOTC[POSIZIONEA(P),P]
  355.       End If 
  356.      Else If AZIONEP(POSIZIONEA(P),P)=9
  357.       If FINEA(POSIZIONEA(P),P)=False
  358.        Proc DAIAPABP[POSIZIONEA(P),P]
  359.       End If 
  360.      Else If AZIONEP(POSIZIONEA(P),P)=10
  361.       If FINEA(POSIZIONEA(P),P)=False
  362.        Proc DAIAPAPB[POSIZIONEA(P),P]
  363.       End If 
  364. '    ------------------------------------  
  365.      Else If AZIONEP(POSIZIONEA(P),P)=11
  366.       If FINEA(POSIZIONEA(P),P)=False
  367.        Proc LASCIAAO[POSIZIONEA(P),P]
  368.       End If 
  369.      Else If AZIONEP(POSIZIONEA(P),P)=12
  370.       If FINEA(POSIZIONEA(P),P)=False
  371.        Proc LASCIAAOB[POSIZIONEA(P),P]
  372.       End If 
  373.      Else If AZIONEP(POSIZIONEA(P),P)=13
  374.       If FINEA(POSIZIONEA(P),P)=False
  375.        Proc LASCIAAOTB[POSIZIONEA(P),P]
  376.       End If 
  377.      Else If AZIONEP(POSIZIONEA(P),P)=14
  378.       If FINEA(POSIZIONEA(P),P)=False
  379.        Proc LASCIAAP[POSIZIONEA(P),P]
  380.       End If 
  381.      Else If AZIONEP(POSIZIONEA(P),P)=15
  382.       If FINEA(POSIZIONEA(P),P)=False
  383.        Proc LASCIAPA[POSIZIONEA(P),P]
  384.       End If 
  385. '    ------------------------------------  
  386.      Else If AZIONEP(POSIZIONEA(P),P)=16
  387.       If FINEA(POSIZIONEA(P),P)=False and POSIZIONEP(P)>-1
  388.        Proc MUOVITIP[POSIZIONEA(P),P]
  389.       End If 
  390. '    ------------------------------------  
  391.      Else If AZIONEP(POSIZIONEA(P),P)=17
  392.       If FINEA(POSIZIONEA(P),P)=False
  393.        Proc PRENDIAO[POSIZIONEA(P),P]
  394.       End If 
  395.      Else If AZIONEP(POSIZIONEA(P),P)=18
  396.       If FINEA(POSIZIONEA(P),P)=False
  397.        Proc PRENDIAOB[POSIZIONEA(P),P]
  398.       End If 
  399.      Else If AZIONEP(POSIZIONEA(P),P)=19
  400.       If FINEA(POSIZIONEA(P),P)=False
  401.        Proc PRENDIAOTB[POSIZIONEA(P),P]
  402.       End If 
  403.      Else If AZIONEP(POSIZIONEA(P),P)=20
  404.       If FINEA(POSIZIONEA(P),P)=False
  405.        Proc PRENDIAP[POSIZIONEA(P),P]
  406.       End If 
  407.      Else If AZIONEP(POSIZIONEA(P),P)=21
  408.       If FINEA(POSIZIONEA(P),P)=False
  409.        Proc PRENDIPA[POSIZIONEA(P),P]
  410.       End If 
  411. '    ------------------------------------  
  412.      Else If AZIONEP(POSIZIONEA(P),P)=22
  413.       If FINEA(POSIZIONEA(P),P)=False and POSIZIONEP(P)>-1
  414.        Proc SEGUI[POSIZIONEA(P),P]
  415.       End If 
  416.      Else If AZIONEP(POSIZIONEA(P),P)=23
  417.       If FINEA(POSIZIONEA(P),P)=False and POSIZIONEP(P)>-1
  418.        Proc SEGUIPA[POSIZIONEA(P),P]
  419.       End If 
  420. '    ------------------------------------  
  421.      Else If AZIONEP(POSIZIONEA(P),P)=24
  422.       If FINEA(POSIZIONEA(P),P)=False
  423.        Proc USAUNOSUAO[POSIZIONEA(P),P]
  424.       End If 
  425.      Else If AZIONEP(POSIZIONEA(P),P)=25
  426.       If FINEA(POSIZIONEA(P),P)=False
  427.        Proc USAUNOSUAOB[POSIZIONEA(P),P]
  428.       End If 
  429.      Else If AZIONEP(POSIZIONEA(P),P)=26
  430.       If FINEA(POSIZIONEA(P),P)=False
  431.        Proc USAUNOSUAOTB[POSIZIONEA(P),P]
  432.       End If 
  433.      Else If AZIONEP(POSIZIONEA(P),P)=27
  434.       If FINEA(POSIZIONEA(P),P)=False
  435.        Proc USAUNOSUAP[POSIZIONEA(P),P]
  436.       End If 
  437.      Else If AZIONEP(POSIZIONEA(P),P)=28
  438.       If FINEA(POSIZIONEA(P),P)=False
  439.        Proc USAUNOSUPA[POSIZIONEA(P),P]
  440.       End If 
  441.      Else If AZIONEP(POSIZIONEA(P),P)=29
  442.       If FINEA(POSIZIONEA(P),P)=False
  443.        Proc USAUNOASUBO[POSIZIONEA(P),P]
  444.       End If 
  445.      Else If AZIONEP(POSIZIONEA(P),P)=30
  446.       If FINEA(POSIZIONEA(P),P)=False
  447.        Proc USAUNOASUBOC[POSIZIONEA(P),P]
  448.       End If 
  449.      Else If AZIONEP(POSIZIONEA(P),P)=31
  450.       If FINEA(POSIZIONEA(P),P)=False
  451.        Proc USAUNOASUBOTC[POSIZIONEA(P),P]
  452.       End If 
  453.      Else If AZIONEP(POSIZIONEA(P),P)=32
  454.       If FINEA(POSIZIONEA(P),P)=False
  455.        Proc USAUNOASUBP[POSIZIONEA(P),P]
  456.       End If 
  457.      Else If AZIONEP(POSIZIONEA(P),P)=33
  458.       If FINEA(POSIZIONEA(P),P)=False
  459.        Proc USAUNOASUPB[POSIZIONEA(P),P]
  460.       End If 
  461.      Else If AZIONEP(POSIZIONEA(P),P)=34
  462.       If FINEA(POSIZIONEA(P),P)=False
  463.        Proc USAUNOTASUBO[POSIZIONEA(P),P]
  464.       End If 
  465.      Else If AZIONEP(POSIZIONEA(P),P)=35
  466.       If FINEA(POSIZIONEA(P),P)=False
  467.        Proc USAUNOTASUBOC[POSIZIONEA(P),P]
  468.       End If 
  469.      Else If AZIONEP(POSIZIONEA(P),P)=36
  470.       If FINEA(POSIZIONEA(P),P)=False
  471.        Proc USAUNOTASUBOTC[POSIZIONEA(P),P]
  472.       End If 
  473.      Else If AZIONEP(POSIZIONEA(P),P)=37
  474.       If FINEA(POSIZIONEA(P),P)=False
  475.        Proc USAUNOTASUBP[POSIZIONEA(P),P]
  476.       End If 
  477.      Else If AZIONEP(POSIZIONEA(P),P)=38
  478.       If FINEA(POSIZIONEA(P),P)=False
  479.        Proc USAUNOTASUPB[POSIZIONEA(P),P]
  480.       End If 
  481. '    ------------------------------------  
  482.      Else If AZIONEP(POSIZIONEA(P),P)=39
  483.       If FINEA(POSIZIONEA(P),P)=False
  484.        Proc USATIUNO[POSIZIONEA(P),P]
  485.       End If 
  486.      Else If AZIONEP(POSIZIONEA(P),P)=40
  487.       If FINEA(POSIZIONEA(P),P)=False
  488.        Proc USATIUNOA[POSIZIONEA(P),P]
  489.       End If 
  490.      Else If AZIONEP(POSIZIONEA(P),P)=41
  491.       If FINEA(POSIZIONEA(P),P)=False
  492.        Proc USATIUNOTA[POSIZIONEA(P),P]
  493.       End If 
  494.      End If 
  495.     End If 
  496.     Add POSIZIONEA(P),1,0 To 7
  497.    Else 
  498.     Dec SONNOP(P)
  499.     If SONNOP(P)=0
  500.      Bclr 2,TIPOP(P)
  501.     End If 
  502.    End If 
  503.   End If 
  504.  Next P
  505.  P=Rnd(NUMEROP-1)+1
  506.  PERSONAGGIOPSITROVADENTROUNEDIFICIO=POSIZIONEP(P)/$10000
  507.  If ANEMICI=True and PERSONAGGIOPSITROVADENTROUNEDIFICIO=0
  508.   NEMICI=Rnd(127-TEMP0TRASCORSO/1440)
  509.   NEMICI=Max(NEMICI,0)
  510.   If NEMICI=0
  511.    If Btst(2,TIPOP(P))=True
  512.     Bclr 2,TIPOP(P) : INEMICISVEGLIANOPERSONAGGIOP=True
  513.     Proc NEMICI[P]
  514.    Else 
  515.     INEMICISVEGLIANOPERSONAGGIOP=False
  516.     Proc NEMICI[P]
  517.    End If 
  518.   End If 
  519.  End If 
  520.  Dec COMPIUTAAZIONE
  521. Wend 
  522. End Proc
  523. Procedure CARATTERISTICHE
  524. Cls 
  525. Print "Caratteristiche di ";NOMEP$(0);">"
  526. Print "Costituzione "; Using "##### ";C0STITUZIONEP(0);
  527. If C0STITUZIONEP(0)=1 Then Print "punto" Else Print "punti"
  528. Print "Destrezza    "; Using "##### ";DESTREZZAP(0);
  529. If DESTREZZAP(0)=1 Then Print "punto" Else Print "punti"
  530. Print "Forza        "; Using "##### ";F0RZAP(0);
  531. If F0RZAP(0)=1 Then Print "punto" Else Print "punti"
  532. Print "Peso         "; Using "##### ";PESOP(0);
  533. If PESOP(0)=1 Then Print "chilo" Else Print "chili"
  534. Print "Resistenza   "; Using "##### ";RESISTENZAP(0);
  535. If RESISTENZAP(0)=1 Then Print "punto" Else Print "punti"
  536. Print "Sesso ";
  537. If Btst(1,TIPOP(0))=True Then Print "femminile" Else Print "maschile"
  538. For A=0 To NUMEROO
  539.  If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  540.   If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  541.    Print NOMEP$(0);" indossa 1 ";NOMESCO$(CATEGORIAO(A))
  542.    Exit 
  543.   End If 
  544.  End If 
  545. Next A
  546. Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  547. End Proc
  548. Procedure CARICAUNFILE
  549. Show On : Cls 
  550. FILE$=Fsel$("*.Adv",NOMEFILE$,"Carica un file","di Adventures Conceiver")
  551. If Exist(FILE$)
  552.  Open In 1,FILE$
  553.  MARCATORE$=Input$(1,21)
  554.  LUNGHEZZABANCO=Lof(1)
  555.  Close 1
  556.  MEMORIA=Chip Free+Fast Free
  557.  If LUNGHEZZABANCO>MEMORIA
  558.   Proc TIC["Non c'� memoria sufficiente per caricare il file",ULTIMALINEA-1]
  559.   Proc TIC[FILE$,ULTIMALINEA] : Proc _ASPETTA
  560.  Else 
  561.   SEPARATORE=Instr(FILE$,":") : POSIZIONE=1
  562.   For A=1 To Len(FILE$)
  563.    If Instr(FILE$,"/",POSIZIONE)>0
  564.     SEPARATORECASSETTO=Instr(FILE$,"/",POSIZIONE)
  565.     POSIZIONE=SEPARATORECASSETTO+1
  566.    End If 
  567.   Next A
  568.   SEPARATORE=Max(SEPARATORE,SEPARATORECASSETTO)
  569.   PERCORSO$=Left$(FILE$,SEPARATORE)
  570.   If Right$(PERCORSO$,1)="/"
  571.    PERCORSO$=Left$(PERCORSO$,Len(PERCORSO$)-1)
  572.   End If 
  573.   NOMEFILE$=Right$(FILE$,Len(FILE$)-SEPARATORE)
  574.   If MARCATORE$="Adventures Conceiver"+Chr$(10)
  575.    Reserve As Work BANCO,LUNGHEZZABANCO
  576.    Bload FILE$,Start(BANCO)
  577.    MESSAGGIO1$="* "+NOMEFILE$+Str$(LUNGHEZZABANCO)+" Byte *"
  578.   Else 
  579.    Proc TIC[NOMEFILE$,ULTIMALINEA-1]
  580.    Proc TIC["Non ï¿½ un file di Adventures Conceiver",ULTIMALINEA] : Proc _ASPETTA
  581.   End If 
  582.  End If 
  583. End If 
  584. Hide On 
  585. End Proc
  586. Procedure CONDIZIONEDELGIORNO
  587. Print "Descrizione giornata>";
  588. If CONDIZIONEG=0
  589.  M1NUTI=(TEMP0TRASCORSO+360) mod 1440
  590.  If M1NUTI<60 : Rem dalle 0:00 alle 0:59 
  591.   Print CONDIZIONEG$(6) : Rem La luna ï¿½ alta 
  592.  Else If M1NUTI>59 and M1NUTI<300 : Rem dalle 1:00 alle 4:59 
  593.   Print CONDIZIONEG$(7) : Rem La luna sta calando  
  594.  Else If M1NUTI>299 and M1NUTI<360 : Rem dalle 5:00 alle 5:59 
  595.   Print CONDIZIONEG$(0) : Rem Il cielo si sta schiarendo 
  596.  Else If M1NUTI>359 and M1NUTI<600 : Rem dalle 6:00 alle 9:59 
  597.   Print CONDIZIONEG$(1) : Rem Il sole si sta alzando 
  598.  Else If M1NUTI>599 and M1NUTI<900 : Rem dalle 10:00 alle 14:59   
  599.   Print CONDIZIONEG$(2) : Rem Il sole ï¿½ alto 
  600.  Else If M1NUTI>899 and M1NUTI<1140 : Rem dalle 15:00 alle 18:59   
  601.   Print CONDIZIONEG$(3) : Rem Il sole sta calando
  602.  Else If M1NUTI>1139 and M1NUTI<1200 : Rem dalle 19:00 alle 19:59 
  603.   Print CONDIZIONEG$(4) : Rem Il cielo si sta oscurando
  604.  Else If M1NUTI>1199 and M1NUTI<1380 : Rem dalle 20:00 alle 22:59 
  605.   Print CONDIZIONEG$(5) : Rem La luna si sta alzando 
  606.  Else : Rem dalle 23:00 alle 23:59 
  607.   Print CONDIZIONEG$(6) : Rem La luna ï¿½ alta 
  608.  End If 
  609. Else If CONDIZIONEG=1
  610.  Print CONDIZIONEG$(8) : Rem E' nuvoloso
  611. Else If CONDIZIONEG=2
  612.  Print CONDIZIONEG$(9) : Rem Sta piovendo 
  613. Else If CONDIZIONEG=3
  614.  Print CONDIZIONEG$(10) : Rem Sta nevicando  
  615. Else If CONDIZIONEG=4
  616.  Print CONDIZIONEG$(11) : Rem Sta grandinando  
  617. Else If CONDIZIONEG=5
  618.  Print CONDIZIONEG$(12) : Rem C'� la nebbia
  619. Else If CONDIZIONEG=6
  620.  Print CONDIZIONEG$(13) : Rem E' buio  
  621. End If 
  622. End Proc
  623. Procedure CONTROLLASEILPERSONAGGIO0HARAGGIUNTOLOSCOPODELGIOCO
  624. SCOPODELGIOCO=AZIONEP(7,0)
  625. PARA=PARAAAZIONEP(7,0)
  626. PARB=PARABAZIONEP(7,0)
  627. PARC=PARACAZIONEP(7,0)
  628. If SCOPODELGIOCO=0
  629.  Pop Proc
  630. Else If SCOPODELGIOCO=1
  631. 'Dai al personaggio PARA PARB oggetti PARC 
  632.  OGGETTIDIA(PARC)=0
  633.  If OGGETTIDATIOLASCIATI(PARC)=PARB
  634.   For A=0 To NUMEROO
  635.    If POSIZIONEO(A)=-1-PARA and Btst(0,TIPOO(A))=True
  636.     If CATEGORIAO(A)=PARC and Btst(1,TIPOO(A))=False
  637.      Inc OGGETTIDIA(CATEGORIAO(A))
  638.     End If 
  639.    End If 
  640.   Next A
  641.   If OGGETTIDIA(PARC)=PARB
  642.    FINEA(7,0)=True
  643.   End If 
  644.  End If 
  645. Else If SCOPODELGIOCO=2
  646. 'Dai al personaggio PARA PARB oggetti tipo PARC  
  647.  For A=0 To NUMEROO
  648.   If POSIZIONEO(A)=-1-PARA and Btst(0,TIPOO(A))=True
  649.    If TIPOCO(CATEGORIAO(A))=PARC and Btst(1,TIPOO(A))=False
  650.     Inc TIPODIOGGETTOPARC
  651.    End If 
  652.   End If 
  653.  Next A
  654.  If TIPODIOGGETTOPARC=PARB
  655.   FINEA(7,0)=True
  656.  End If 
  657. Else If SCOPODELGIOCO=3
  658. 'Dai a PARA PARB soldi 
  659.  If SOLDIRICEVUTIP(PARA)=PARB
  660.   FINEA(7,0)=True
  661.  End If 
  662. Else If SCOPODELGIOCO=4
  663. 'Guadagna PARA soldi 
  664.  If SOLDIP(0)>=PARA
  665.   FINEA(7,0)=True
  666.  End If 
  667. Else If SCOPODELGIOCO=5
  668. 'Lascia nel luogo PARA PARB oggetti PARC 
  669.  OGGETTIDIA(PARC)=0
  670.  For A=0 To NUMEROO
  671.   If POSIZIONEO(A)=PARA
  672.    If CATEGORIAO(A)=PARC and Btst(1,TIPOO(A))=False
  673.     Inc OGGETTIDIA(PARC)
  674.    End If 
  675.   End If 
  676.  Next A
  677.  If OGGETTIDIA(PARC)>=PARB
  678.   FINEA(7,0)=True
  679.  End If 
  680. Else If SCOPODELGIOCO=6
  681. 'Lascia nel luogo PARA PARB oggetti tipo PARC  
  682.  For A=0 To NUMEROO
  683.   If POSIZIONEO(A)=PARA
  684.    If PARATIPOCO(CATEGORIAO(A))=PARC and Btst(1,TIPOO(A))=False
  685.     Inc OGGETTIDELTIPOPARC
  686.    End If 
  687.   End If 
  688.  Next A
  689.  If OGGETTIDELTIPOPARC>=PARB
  690.   FINEA(7,0)=True
  691.  End If 
  692. Else If SCOPODELGIOCO=7
  693. 'Lascia nel luogo PARA PARB soldi
  694.  If SOLDIL(PARA)>=PARB
  695.   FINEA(7,0)=True
  696.  End If 
  697. Else If SCOPODELGIOCO=8
  698. 'Prendi PARA oggetti PARB
  699.  If OGGETTIDELPERSONAGGIO0(PARB)=PARA
  700.   FINEA(7,0)=True
  701.  End If 
  702. Else If SCOPODELGIOCO=9
  703. 'Prendi  PARA oggetti tipo PARB
  704.  For A=0 To NUMEROO
  705.   If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  706.    If TIPOCO(CATEGORIAO(A))=PARB and Btst(1,TIPOO(A))=False
  707.     Inc TIPODIOGGETTOPARB
  708.    End If 
  709.   End If 
  710.  Next A
  711.  If TIPODIOGGETTOPARB=PARA
  712.   FINEA(7,0)=True
  713.  End If 
  714. Else If SCOPODELGIOCO=10
  715. 'Trova il personaggio PARA 
  716.  Proc PERSONAGGIOVISIBILE[PARA]
  717.  If PERSONAGGIOVISIBILEP(PARA)=True
  718.   FINEA(7,0)=True
  719.  End If 
  720. Else If SCOPODELGIOCO=11
  721. 'Uccidi il personaggio PARA  
  722.  If RESISTENZAP(PARA)=0
  723.   FINEA(7,0)=True
  724.  End If 
  725. Else If SCOPODELGIOCO=12
  726. 'Usa 1 oggetto PARA su 1 oggetto PARB
  727. If CATEGORIAO(OGGETTOUSANTE)=PARA and CATEGORIAO(OGGETTOUSATO)=PARB
  728.  FINEA(7,0)=True
  729. End If 
  730. Else If SCOPODELGIOCO=13
  731. 'Usa 1 oggetto PARA su 1 oggetto tipo PARB 
  732. If CATEGORIAO(OGGETTOUSANTE)=PARA and PARATIPOCO(CATEGORIAO(OGGETTOUSATO))=PARB
  733.  FINEA(7,0)=True
  734. End If 
  735. Else If SCOPODELGIOCO=14
  736. 'Usa 1 oggetto PARA su PARB
  737. If CATEGORIAO(OGGETTOUSANTE)=PARA and PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO=PARB
  738.  FINEA(7,0)=True
  739. End If 
  740. Else If SCOPODELGIOCO=15
  741. 'Usa 1 oggetto tipo PARA su 1 oggetto PARB 
  742. If PARATIPOCO(CATEGORIAO(OGGETTOUSANTE))=PARA and CATEGORIAO(OGGETTOUSATO)=PARB
  743.  FINEA(7,0)=True
  744. End If 
  745. Else If SCOPODELGIOCO=16
  746. 'Usa 1 oggetto tipo PARA su un oggetto tipo PARB 
  747. If PARATIPOCO(CATEGORIAO(OGGETTOUSANTE))=PARA and PARATIPOCO(CATEGORIAO(OGGETTOUSATO))=PARB
  748.  FINEA(7,0)=True
  749. End If 
  750. Else If SCOPODELGIOCO=17
  751. 'Usa 1 oggetto tipo PARA su PARB 
  752. If PARATIPOCO(CATEGORIAO(OGGETTOUSANTE))=PARA and PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO=PARB
  753.  FINEA(7,0)=True
  754. End If 
  755. Else If SCOPODELGIOCO=18
  756. 'Vai nel luogo PARA
  757.  If POSIZIONEP(0)=PARA and TEMP0DIATTRAVERSAMENTOP(0)=0
  758.   FINEA(7,0)=True
  759.  End If 
  760. End If 
  761. End Proc
  762. Procedure CREAMAPPA
  763. Cls 
  764. Print At(0,ULTIMALINEA);"Vuoi creare una mappa dei luoghi o delle stanze (l/s) ?"
  765. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  766. If RISPOSTA$="l"
  767.  Repeat 
  768.   Locate 0,ULTIMALINEA : Input "Larghezza della mappa in luoghi (>2)>";LARGHEZZADELLAMAPPA$;
  769.   If LARGHEZZADELLAMAPPA$<>""
  770.    LARGHEZZADELLAMAPPA=Val(LARGHEZZADELLAMAPPA$)
  771.    If LARGHEZZADELLAMAPPA<3
  772.     TIC["La larghezza deve essere almeno di tre luoghi!",ULTIMALINEA]
  773.     Proc _ASPETTA
  774.    End If 
  775.   End If 
  776.  Until LARGHEZZADELLAMAPPA>2
  777.  Repeat 
  778.   Locate 0,ULTIMALINEA : Cline 
  779.   Input "Altezza della mappa in luoghi (>2)>";ALTEZZADELLAMAPPA$;
  780.   If ALTEZZADELLAMAPPA$<>""
  781.    ALTEZZADELLAMAPPA=Val(ALTEZZADELLAMAPPA$)
  782.    If ALTEZZADELLAMAPPA<3
  783.     TIC["L'altezza deve essere almeno di tre luoghi!",ULTIMALINEA]
  784.     Proc _ASPETTA
  785.    End If 
  786.   End If 
  787.  Until ALTEZZADELLAMAPPA>2
  788.  Repeat 
  789.   Locate 0,ULTIMALINEA : Cline 
  790.   Input "Luogo di partenza della mappa (>=0)>";LUOGODIPARTENZADELLAMAPPA$;
  791.   If LUOGODIAPRTENZADELLAMAPPA$<>""
  792.    LUOGODIPARTENZADELLAMAPPA=Val(LUOGODIPARTENZADELLAMAPPA$)
  793.    If LUOGODIAPRTENZADELLAMAPPA<0
  794.     TIC["devi indicare un valore uguale o maggiore di zero!",ULTIMALINEA]
  795.     Proc _ASPETTA
  796.    End If 
  797.   End If 
  798.  Until LUOGODIPARTENZADELLAMAPPA>=0
  799.  NUMEROLUOGHI=LARGHEZZADELLAMAPPA*ALTEZZADELLAMAPPA
  800.  If LUOGODIPARTENZADELLAMAPPA+NUMEROLUOGHI-1>NUMEROL
  801.   TIC["Numero dei luoghi disponibili uguale a"+Str$(NUMEROL+1)+"!",ULTIMALINEA]
  802.   Proc _ASPETTA
  803.  Else 
  804.   Locate 0,ULTIMALINEA : Cline : Print "Vuoi che i luoghi siano delimitati (s/n) ?"
  805.   RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  806.   If RISPOSTA$="s"
  807.    LIMITI=True
  808.   Else 
  809.    LIMITI=False
  810.   End If 
  811.   TIC["Sto creando la mappa dei luoghi...",ULTIMALINEA]
  812.   Proc _ASPETTA
  813.   Proc _ORDINALUOGHI[NUMEROLUOGHI-1,LARGHEZZADELLAMAPPA,LUOGODIPARTENZADELLLAMAPPA,LIMITI]
  814.  End If 
  815. Else If RISPOSTA$="s"
  816.  If NUMEROE=-1
  817.   Locate 0,ULTIMALINEA : Cline : Print "Non ci sono Edifici!"
  818.   Proc _ASPETTA : Pop Proc
  819.  Else If NUMEROE>0
  820.   Locate 0,ULTIMALINEA : Input "Quale edificio (0-"+Str$(NUMEROE)-" "+") ?>";NUMEROEDIFICIO$;
  821.   If NUMEROEDIFICIO$<>""
  822.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  823.    Proc LIMITI[NUMEROEDIFICIO,0,NUMEROE] : NUMEROEDIFICIO=Param
  824.   End If 
  825.  End If 
  826.  Repeat 
  827.   Locate 0,ULTIMALINEA : Input "Larghezza della mappa in stanze (>2)>";LARGHEZZADELLAMAPPA$;
  828.   If LARGHEZZADELLAMAPPA$<>""
  829.    LARGHEZZADELLAMAPPA=Val(LARGHEZZADELLAMAPPA$)
  830.    If LARGHEZZADELLAMAPPA<3
  831.     TIC["La larghezza deve essere almeno di tre stanze!",ULTIMALINEA]
  832.     Proc _ASPETTA
  833.    End If 
  834.   End If 
  835.  Until LARGHEZZADELLAMAPPA>2
  836.  Repeat 
  837.   Locate 0,ULTIMALINEA : Cline 
  838.   Input "Altezza della mappa in stanze (>2)>";ALTEZZADELLAMAPPA$;
  839.   If ALTEZZADELLAMAPPA$<>""
  840.    ALTEZZADELLAMAPPA=Val(ALTEZZADELLAMAPPA$)
  841.    If ALTEZZADELLAMAPPA<3
  842.     TIC["L'altezza deve essere almeno di tre stanze!",ULTIMALINEA]
  843.     Proc _ASPETTA
  844.    End If 
  845.   End If 
  846.  Until ALTEZZADELLAMAPPA>2
  847.  Repeat 
  848.   Locate 0,ULTIMALINEA : Cline 
  849.   Input "Stanza di partenza della mappa (>=0)>";STANZADIPARTENZADELLAMAPPA$;
  850.   If STANZADIAPRTENZADELLAMAPPA$<>""
  851.    STANZADIPARTENZADELLAMAPPA=Val(STANZADIPARTENZADELLAMAPPA$)
  852.    If STANZADIAPRTENZADELLAMAPPA<0
  853.     TIC["devi indicare un valore uguale o maggiore di zero!",ULTIMALINEA]
  854.     Proc _ASPETTA
  855.    End If 
  856.   End If 
  857.  Until STANZADIPARTENZADELLAMAPPA>=0
  858.  NUMEROSTANZE=LARGHEZZADELLAMAPPA*ALTEZZADELLAMAPPA
  859.  If STANZADIPARTENZADELLAMAPPA+NUMEROSTANZE-1>NUMEROS(NUMEROEDIFICIO)
  860.   TIC["Numero delle stanze disponibili uguale a"+Str$(NUMEROS(NUMEROEDIFICIO)+1)+"!",ULTIMALINEA]
  861.   Proc _ASPETTA
  862.  Else 
  863.   TIC["Sto creando la mappa delle stanze...",ULTIMALINEA]
  864.   Proc _ASPETTA
  865.   Proc _ORDINASTANZE[NUMEROEDIFICIO,NUMEROSTANZE-1,LARGHEZZADELLAMAPPA,STANZADIPARTENZADELLLAMAPPA]
  866.  End If 
  867. End If 
  868. Curs Off 
  869. End Proc
  870. Procedure DABANCOAVARIABILI
  871. If Length(BANCO)>0
  872.  TIC["Un attimo che converto i dati...",ULTIMALINEA]
  873.  INDIRIZZO=Start(BANCO)+21
  874.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  875. 'Nemici attivi o no:   
  876.  Add INDIRIZZO,Len(DATO$)+1
  877.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  878.  ANEMICI=Val(DATO$)
  879.  Add INDIRIZZO,Len(DATO$)+1
  880.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  881. 'Numero delle categorie degli oggetti:   
  882.  Add INDIRIZZO,Len(DATO$)+1
  883.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  884.  NUMEROCO=Val(DATO$)
  885.  Add INDIRIZZO,Len(DATO$)+1
  886.  For A=0 To NUMEROCO
  887.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  888. 'Categoria A>  
  889.   Add INDIRIZZO,Len(DATO$)+1
  890.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  891. 'Nome singolare: 
  892.   Add INDIRIZZO,Len(DATO$)+1
  893.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  894.   NOMESCO$(A)=DATO$
  895.   Add INDIRIZZO,Len(DATO$)+1
  896.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  897. 'Nome plurale: 
  898.   Add INDIRIZZO,Len(DATO$)+1
  899.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  900.   NOMEPCO$(A)=DATO$
  901.    Add INDIRIZZO,Len(DATO$)+1
  902.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  903. 'Nome singolare resto: 
  904.   Add INDIRIZZO,Len(DATO$)+1
  905.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  906.   NOMESRO$(A)=DATO$
  907.   Add INDIRIZZO,Len(DATO$)+1
  908.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  909. 'Nome plurale resto: 
  910.   Add INDIRIZZO,Len(DATO$)+1
  911.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  912.   NOMEPRO$(A)=DATO$
  913.   Add INDIRIZZO,Len(DATO$)+1
  914.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  915. 'Peso: 
  916.   Add INDIRIZZO,Len(DATO$)+1
  917.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  918.   PESOCO(A)=Val(DATO$)
  919.   Add INDIRIZZO,Len(DATO$)+1
  920.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  921. 'Peso resto: 
  922.   Add INDIRIZZO,Len(DATO$)+1
  923.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  924.   PESORESTOCO(A)=Val(DATO$)
  925.   Add INDIRIZZO,Len(DATO$)+1
  926.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  927. 'Tipo:   
  928.   Add INDIRIZZO,Len(DATO$)+1
  929.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  930.   TIPOCO(A)=Val(DATO$)
  931.   Add INDIRIZZO,Len(DATO$)+1
  932.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  933. 'Parametro tipo:   
  934.   Add INDIRIZZO,Len(DATO$)+1
  935.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  936.   PARATIPOCO(A)=Val(DATO$)
  937.   Add INDIRIZZO,Len(DATO$)+1
  938.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  939. 'descrizione:  
  940.   Add INDIRIZZO,Len(DATO$)+1
  941.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  942.   DESCRIZIONECO$(A)=DATO$
  943.   Add INDIRIZZO,Len(DATO$)+1
  944.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  945. 'Oggetto del personaggio zero: 
  946.   Add INDIRIZZO,Len(DATO$)+1
  947.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  948.   OGGETTIDELPERSONAGGIO0(A)=Val(DATO$)
  949.   Add INDIRIZZO,Len(DATO$)+1
  950.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  951. 'Resto del personaggio zero: 
  952.   Add INDIRIZZO,Len(DATO$)+1
  953.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  954.   RESTIDELPERSONAGGIO0(A)=Val(DATO$)
  955.   Add INDIRIZZO,Len(DATO$)+1
  956.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  957. 'Oggetto dato: 
  958.   Add INDIRIZZO,Len(DATO$)+1
  959.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  960.   OGGETTIDATIOLASCIATI(A)=Val(DATO$)
  961.   Add INDIRIZZO,Len(DATO$)+1
  962.  Next A
  963.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  964. 'Numero degli edifici:   
  965.  Add INDIRIZZO,Len(DATO$)+1
  966.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  967.  NUMEROE=Val(DATO$)
  968.  Add INDIRIZZO,Len(DATO$)+1
  969.  If NUMEROE>-1
  970.   For A=0 To NUMEROE
  971.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  972. 'Edificio A>   
  973.    Add INDIRIZZO,Len(DATO$)+1
  974.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  975. 'Nome: 
  976.    Add INDIRIZZO,Len(DATO$)+1
  977.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  978.    NOMEE$(A)=DATO$
  979.    Add INDIRIZZO,Len(DATO$)+1
  980.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  981. 'Descrizione:  
  982.    Add INDIRIZZO,Len(DATO$)+1
  983.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  984.    DESCRIZIONEE$(A)=DATO$
  985.    Add INDIRIZZO,Len(DATO$)+1
  986.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  987. 'Numero delle stanze:  
  988.    Add INDIRIZZO,Len(DATO$)+1
  989.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  990.    NUMEROS(A)=Val(DATO$)
  991.    Add INDIRIZZO,Len(DATO$)+1
  992.    For B=0 To NUMEROS(A)
  993.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  994. 'Stanza A>   
  995.     Add INDIRIZZO,Len(DATO$)+1
  996.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  997. 'Nome: 
  998.     Add INDIRIZZO,Len(DATO$)+1
  999.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1000.     NOMES$(B,A)=DATO$
  1001.     Add INDIRIZZO,Len(DATO$)+1
  1002.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1003. 'Luogo Nord: 
  1004.     Add INDIRIZZO,Len(DATO$)+1
  1005.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1006.     DREZIONES(0,B,A)=Val(DATO$)
  1007.     Add INDIRIZZO,Len(DATO$)+1
  1008.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1009. 'Luogo NordEst:  
  1010.     Add INDIRIZZO,Len(DATO$)+1
  1011.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1012.     DREZIONES(1,B,A)=Val(DATO$)
  1013.     Add INDIRIZZO,Len(DATO$)+1
  1014.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1015. 'Luogo Est:  
  1016.     Add INDIRIZZO,Len(DATO$)+1
  1017.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1018.     DREZIONES(2,B,A)=Val(DATO$)
  1019.     Add INDIRIZZO,Len(DATO$)+1
  1020.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1021. 'Luogo SudEst: 
  1022.     Add INDIRIZZO,Len(DATO$)+1
  1023.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1024.     DREZIONES(3,B,A)=Val(DATO$)
  1025.     Add INDIRIZZO,Len(DATO$)+1
  1026.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1027. 'Luogo Sud:  
  1028.     Add INDIRIZZO,Len(DATO$)+1
  1029.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1030.     DREZIONES(4,B,A)=Val(DATO$)
  1031.     Add INDIRIZZO,Len(DATO$)+1
  1032.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1033. 'Luogo SudOvest: 
  1034.     Add INDIRIZZO,Len(DATO$)+1
  1035.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1036.     DREZIONES(5,B,A)=Val(DATO$)
  1037.     Add INDIRIZZO,Len(DATO$)+1
  1038.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1039. 'Luogo Ovest:  
  1040.     Add INDIRIZZO,Len(DATO$)+1
  1041.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1042.     DREZIONES(6,B,A)=Val(DATO$)
  1043.     Add INDIRIZZO,Len(DATO$)+1
  1044.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1045. 'Luogo NordOvest:  
  1046.     Add INDIRIZZO,Len(DATO$)+1
  1047.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1048.     DREZIONES(7,B,A)=Val(DATO$)
  1049.     Add INDIRIZZO,Len(DATO$)+1
  1050.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1051. 'Luogo Sopra:  
  1052.     Add INDIRIZZO,Len(DATO$)+1
  1053.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1054.     DREZIONES(8,B,A)=Val(DATO$)
  1055.     Add INDIRIZZO,Len(DATO$)+1
  1056.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1057. 'Luogo Sotto:  
  1058.     Add INDIRIZZO,Len(DATO$)+1
  1059.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1060.     DREZIONES(9,B,A)=Val(DATO$)
  1061.     Add INDIRIZZO,Len(DATO$)+1
  1062.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1063. 'Soldi nella stanza:   
  1064.     Add INDIRIZZO,Len(DATO$)+1
  1065.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1066.     SOLDIS(B,A)=Val(DATO$)
  1067.     Add INDIRIZZO,Len(DATO$)+1
  1068.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1069. 'Descrizione:  
  1070.     Add INDIRIZZO,Len(DATO$)+1
  1071.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  1072.     DESCRIZIONES$(B,A)=DATO$
  1073.     Add INDIRIZZO,Len(DATO$)+1
  1074.    Next B
  1075.   Next A
  1076.  End If 
  1077.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1078. 'Numero dei luoghi:  
  1079.  Add INDIRIZZO,Len(DATO$)+1
  1080.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1081.  NUMEROL=Val(DATO$)
  1082.  Add INDIRIZZO,Len(DATO$)+1
  1083.  For A=0 To NUMEROL
  1084.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1085. 'Luogo A>  
  1086.   Add INDIRIZZO,Len(DATO$)+1
  1087.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1088. 'Nome: 
  1089.   Add INDIRIZZO,Len(DATO$)+1
  1090.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1091.   NOMEL$(A)=DATO$
  1092.   Add INDIRIZZO,Len(DATO$)+1
  1093.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1094. 'Luogo Nord: 
  1095.   Add INDIRIZZO,Len(DATO$)+1
  1096.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1097.   DREZIONEL(0,A)=Val(DATO$)
  1098.   Add INDIRIZZO,Len(DATO$)+1
  1099.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1100. 'Luogo NordEst:  
  1101.   Add INDIRIZZO,Len(DATO$)+1
  1102.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1103.   DREZIONEL(1,A)=Val(DATO$)
  1104.   Add INDIRIZZO,Len(DATO$)+1
  1105.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1106. 'Luogo Est:  
  1107.   Add INDIRIZZO,Len(DATO$)+1
  1108.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1109.   DREZIONEL(2,A)=Val(DATO$)
  1110.   Add INDIRIZZO,Len(DATO$)+1
  1111.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1112. 'Luogo SudEst: 
  1113.   Add INDIRIZZO,Len(DATO$)+1
  1114.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1115.   DREZIONEL(3,A)=Val(DATO$)
  1116.   Add INDIRIZZO,Len(DATO$)+1
  1117.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1118. 'Luogo Sud:  
  1119.   Add INDIRIZZO,Len(DATO$)+1
  1120.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1121.   DREZIONEL(4,A)=Val(DATO$)
  1122.   Add INDIRIZZO,Len(DATO$)+1
  1123.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1124. 'Luogo SudOvest: 
  1125.   Add INDIRIZZO,Len(DATO$)+1
  1126.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1127.   DREZIONEL(5,A)=Val(DATO$)
  1128.   Add INDIRIZZO,Len(DATO$)+1
  1129.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1130. 'Luogo Ovest:  
  1131.   Add INDIRIZZO,Len(DATO$)+1
  1132.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1133.   DREZIONEL(6,A)=Val(DATO$)
  1134.   Add INDIRIZZO,Len(DATO$)+1
  1135.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1136. 'Luogo NordOvest:  
  1137.   Add INDIRIZZO,Len(DATO$)+1
  1138.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1139.   DREZIONEL(7,A)=Val(DATO$)
  1140.   Add INDIRIZZO,Len(DATO$)+1
  1141.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1142. 'Luogo Sopra:  
  1143.   Add INDIRIZZO,Len(DATO$)+1
  1144.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1145.   DREZIONEL(8,A)=Val(DATO$)
  1146.   Add INDIRIZZO,Len(DATO$)+1
  1147.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1148. 'Luogo Sotto:  
  1149.   Add INDIRIZZO,Len(DATO$)+1
  1150.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1151.   DREZIONEL(9,A)=Val(DATO$)
  1152.   Add INDIRIZZO,Len(DATO$)+1
  1153.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1154. 'Soldi nel luogo:  
  1155.   Add INDIRIZZO,Len(DATO$)+1
  1156.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1157.   SOLDIL(A)=Val(DATO$)
  1158.   Add INDIRIZZO,Len(DATO$)+1
  1159.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1160. 'Regione del luogo:  
  1161.   Add INDIRIZZO,Len(DATO$)+1
  1162.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1163.   REGIONEL(A)=Val(DATO$)
  1164.   Add INDIRIZZO,Len(DATO$)+1
  1165.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1166. 'Tipo di luogo:  
  1167.   Add INDIRIZZO,Len(DATO$)+1
  1168.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1169.   TIPOL(A)=Val(DATO$)
  1170.   Add INDIRIZZO,Len(DATO$)+1
  1171.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1172. 'Descrizione:  
  1173.   Add INDIRIZZO,Len(DATO$)+1
  1174.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  1175.   DESCRIZIONEL$(A)=DATO$
  1176.   Add INDIRIZZO,Len(DATO$)+1
  1177.  Next A
  1178.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1179. 'Numero degli oggetti:   
  1180.  Add INDIRIZZO,Len(DATO$)+1
  1181.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1182.  NUMEROO=Val(DATO$)
  1183.  Add INDIRIZZO,Len(DATO$)+1
  1184.  For A=0 To NUMEROO
  1185.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1186. 'Oggetto A>  
  1187.   Add INDIRIZZO,Len(DATO$)+1
  1188.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1189. 'Categoria:  
  1190.   Add INDIRIZZO,Len(DATO$)+1
  1191.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1192.   CATEGORIAO(A)=Val(DATO$)
  1193.   Add INDIRIZZO,Len(DATO$)+1
  1194.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1195. 'Posizione:  
  1196.   Add INDIRIZZO,Len(DATO$)+1
  1197.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1198.   POSIZIONEO(A)=Val(DATO$)
  1199.   Add INDIRIZZO,Len(DATO$)+1
  1200.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1201. 'Tipo:   
  1202.   Add INDIRIZZO,Len(DATO$)+1
  1203.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1204.   TIPOO(A)=Val(DATO$)
  1205.   Add INDIRIZZO,Len(DATO$)+1
  1206.  Next A
  1207.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1208. 'Numero dei personaggi:  
  1209.  Add INDIRIZZO,Len(DATO$)+1
  1210.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1211.  NUMEROP=Val(DATO$)
  1212.  Add INDIRIZZO,Len(DATO$)+1
  1213.  For A=0 To NUMEROP
  1214.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1215. 'Personaggio A>  
  1216.   Add INDIRIZZO,Len(DATO$)+1
  1217.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1218. 'Nome:   
  1219.   Add INDIRIZZO,Len(DATO$)+1
  1220.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1221.   NOMEP$(A)=DATO$
  1222.   Add INDIRIZZO,Len(DATO$)+1
  1223.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1224. 'Posizione:    
  1225.   Add INDIRIZZO,Len(DATO$)+1
  1226.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1227.   POSIZIONEP(A)=Val(DATO$)
  1228.   Add INDIRIZZO,Len(DATO$)+1
  1229.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1230. 'Costituzione:   
  1231.   Add INDIRIZZO,Len(DATO$)+1
  1232.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1233.   C0STITUZIONEP(A)=Val(DATO$)
  1234.   Add INDIRIZZO,Len(DATO$)+1
  1235.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1236. 'Destrezza:    
  1237.   Add INDIRIZZO,Len(DATO$)+1
  1238.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1239.   DESTREZZAP(A)=Val(DATO$)
  1240.   Add INDIRIZZO,Len(DATO$)+1
  1241.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1242. 'Forza:    
  1243.   Add INDIRIZZO,Len(DATO$)+1
  1244.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1245.   F0RZAP(A)=Val(DATO$)
  1246.   Add INDIRIZZO,Len(DATO$)+1
  1247.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1248. 'Peso:   
  1249.   Add INDIRIZZO,Len(DATO$)+1
  1250.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1251.   PESOP(A)=Val(DATO$)
  1252.   Add INDIRIZZO,Len(DATO$)+1
  1253.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1254. 'Peso netto:   
  1255.   Add INDIRIZZO,Len(DATO$)+1
  1256.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1257.   PESONETTOP(A)=Val(DATO$)
  1258.   Add INDIRIZZO,Len(DATO$)+1
  1259.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1260. 'Resistenza:   
  1261.   Add INDIRIZZO,Len(DATO$)+1
  1262.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1263.   RESISTENZAP(A)=Val(DATO$)
  1264.   Add INDIRIZZO,Len(DATO$)+1
  1265.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1266. 'Soldi:    
  1267.   Add INDIRIZZO,Len(DATO$)+1
  1268.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1269.   SOLDIP(A)=Val(DATO$)
  1270.   Add INDIRIZZO,Len(DATO$)+1
  1271.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1272. 'Tipo:   
  1273.   Add INDIRIZZO,Len(DATO$)+1
  1274.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1275.   TIPOP(A)=Val(DATO$)
  1276.   Add INDIRIZZO,Len(DATO$)+1
  1277.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1278. 'Descrizione:    
  1279.   Add INDIRIZZO,Len(DATO$)+1
  1280.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  1281.   DESCRIZIONEP$(A)=DATO$
  1282.   Add INDIRIZZO,Len(DATO$)+1
  1283.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1284. 'Inizio sonno:   
  1285.   Add INDIRIZZO,Len(DATO$)+1
  1286.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1287.   INIZIOSONNOP(A)=Val(DATO$)
  1288.   Add INDIRIZZO,Len(DATO$)+1
  1289.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1290. 'Durata sonno:   
  1291.   Add INDIRIZZO,Len(DATO$)+1
  1292.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1293.   SONNOP(A)=Val(DATO$)
  1294.   Add INDIRIZZO,Len(DATO$)+1
  1295.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1296. 'Direzione presa:    
  1297.   Add INDIRIZZO,Len(DATO$)+1
  1298.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1299.   DREZIONEPRESAP(A)=Val(DATO$)
  1300.   Add INDIRIZZO,Len(DATO$)+1
  1301.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1302. 'Luogo di destinazione:    
  1303.   Add INDIRIZZO,Len(DATO$)+1
  1304.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1305.   LUOGODIDESTINAZIONEP(A)=Val(DATO$)
  1306.   Add INDIRIZZO,Len(DATO$)+1
  1307.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1308. 'Tempo di attraversamento:   
  1309.   Add INDIRIZZO,Len(DATO$)+1
  1310.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1311.   TEMP0DIATTRAVERSAMENTOP(A)=Val(DATO$)
  1312.   Add INDIRIZZO,Len(DATO$)+1
  1313.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1314. 'Soldi ricevuti:     
  1315.   Add INDIRIZZO,Len(DATO$)+1
  1316.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1317.   SOLDIRICEVUTIP(A)=Val(DATO$)
  1318.   Add INDIRIZZO,Len(DATO$)+1
  1319.   For B=0 To 7
  1320.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1321. 'Azione:   
  1322.    Add INDIRIZZO,Len(DATO$)+1
  1323.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1324.    AZIONEP(B,A)=Val(DATO$)
  1325.    Add INDIRIZZO,Len(DATO$)+1
  1326.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1327. 'Parametro A azione:   
  1328.    Add INDIRIZZO,Len(DATO$)+1
  1329.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1330.    PARAAAZIONEP(B,A)=Val(DATO$)
  1331.    Add INDIRIZZO,Len(DATO$)+1
  1332.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1333. 'Parametro B azione:   
  1334.    Add INDIRIZZO,Len(DATO$)+1
  1335.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1336.    PARABAZIONEP(B,A)=Val(DATO$)
  1337.    Add INDIRIZZO,Len(DATO$)+1
  1338.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1339. 'Parametro C azione:   
  1340.    Add INDIRIZZO,Len(DATO$)+1
  1341.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1342.    PARACAZIONEP(B,A)=Val(DATO$)
  1343.    Add INDIRIZZO,Len(DATO$)+1
  1344.   Next B
  1345.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1346. 'Posizione azione:   
  1347.   Add INDIRIZZO,Len(DATO$)+1
  1348.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1349.   POSIZIONEA(A)=Val(DATO$)
  1350.   Add INDIRIZZO,Len(DATO$)+1
  1351.  Next A
  1352.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1353. 'Numero delle regioni:   
  1354.  Add INDIRIZZO,Len(DATO$)+1
  1355.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1356.  NUMEROR=Val(DATO$)
  1357.  Add INDIRIZZO,Len(DATO$)+1
  1358.  For A=0 To NUMEROR
  1359.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1360. 'Regione A>  
  1361.   Add INDIRIZZO,Len(DATO$)+1
  1362.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1363. 'Nome:   
  1364.   Add INDIRIZZO,Len(DATO$)+1
  1365.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1366.   NOMER$(A)=DATO$
  1367.   Add INDIRIZZO,Len(DATO$)+1
  1368.  Next A
  1369.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1370. 'Giornata:     
  1371.  Add INDIRIZZO,Len(DATO$)+1
  1372.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1373.  CONDIZIONEG=Val(DATO$)
  1374.  Add INDIRIZZO,Len(DATO$)+1
  1375.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1376. 'Tempo trascorso:    
  1377.  Add INDIRIZZO,Len(DATO$)+1
  1378.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1379.  TEMP0TRASCORSO=Val(DATO$)
  1380.  Add INDIRIZZO,Len(DATO$)+1
  1381.  If INDIRIZZO=Start(BANCO)+Length(BANCO)
  1382.   Proc TIC["Conversione dati avvenuta",ULTIMALINEA] : Proc _ASPETTA
  1383.  Else 
  1384.   Proc TIC["Conversione dati fallita",ULTIMALINEA] : Proc _ASPETTA
  1385.   Proc INIZIALIZZALEVARIABILI
  1386.  End If 
  1387.  Erase BANCO
  1388. End If 
  1389. End Proc
  1390. Procedure DAI
  1391. For A=1 To NUMEROP
  1392.  If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIRICEVENTI
  1393. Next A
  1394. If PERSONAGGIRICEVENTI>0
  1395.  For A=0 To NUMEROCO
  1396.   If OGGETTIDELPERSONAGGIO0(A)>0
  1397.    Inc CATEGORIEOGGETTI
  1398.   End If 
  1399.   If RESTIDELPERSONAGGIO0(A)>0
  1400.    Inc CATEGORIEOGGETTI
  1401.   End If 
  1402.  Next A
  1403.  For A=1 To NUMEROP
  1404.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  1405.    Inc PERSONAGGIDADARE
  1406.   End If 
  1407.  Next A
  1408.  If SOLDIP(0)>0
  1409.   SOLDIDADARE=True
  1410.  End If 
  1411.  If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE>0 and SOLDIDADARE=True
  1412.   Print At(0,ULTIMALINEA);"Vuoi dare un oggetto, un personaggio o dei soldi (o/p/s) ?>";
  1413.   OGGETTOPERSONAGGIOOSOLDI$=Input$(1)
  1414.   OGGETTOPERSONAGGIOOSOLDI$=Lower$(OGGETTOPERSONAGGIOOSOLDI$)
  1415.   If OGGETTOPERSONAGGIOOSOLDI$="o"
  1416.    Proc DAIUNOGGETTO
  1417.   Else If OGGETTOPERSONAGGIOOSOLDI$="p"
  1418.    Proc DAIUNPERSONAGGIO
  1419.   Else If OGGETTOPERSONAGGIOOSOLDI$="s"
  1420.    Proc DAIDEISOLDI
  1421.   End If 
  1422.  Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE=0 and SOLDIDADARE=True
  1423.   Print At(0,ULTIMALINEA);"Vuoi dare un oggetto o dei soldi (o/s) ?>";
  1424.   OGGETTOOSOLDI$=Input$(1)
  1425.   OGGETTOOSOLDI$=Lower$(OGGETTOOSOLDI$)
  1426.   If OGGETTOOSOLDI$="o"
  1427.    Proc DAIUNOGGETTO
  1428.   Else If OGGETTOOSOLDI$="s"
  1429.    Proc DAIDEISOLDI
  1430.   End If 
  1431.  Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE>0 and SOLDIDADARE=True
  1432.   Print At(0,ULTIMALINEA);"Vuoi dare un personaggio o dei soldi (p/s) ?>";
  1433.   PERSONAGGIOOSOLDI$=Input$(1)
  1434.   PERSONAGGIOOSOLDI$=Lower$(PERSONAGGIOOSOLDI$)
  1435.   If PERSONAGGIOOSOLDI$="p"
  1436.    Proc DAIUNPERSONAGGIO
  1437.   Else If PERSONAGGIOOSOLDI$="s"
  1438.    Proc DAIDEISOLDI
  1439.   End If 
  1440.  Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE=0 and SOLDIDADARE=True
  1441.   Proc DAIDEISOLDI
  1442.  Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE>0 and SOLDIDADARE=False
  1443.   Print At(0,ULTIMALINEA);"Vuoi dare un oggetto od un personaggio (o/p) ?>";
  1444.   OGGETTOOPERSONAGGIO$=Input$(1)
  1445.   OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  1446.   If OGGETTOOPERSONAGGIO$="o"
  1447.    Proc DAIUNOGGETTO
  1448.   Else If OGGETTOOPERSONAGGIO$="p"
  1449.    Proc DAIUNPERSONAGGIO
  1450.   End If 
  1451.  Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE=0 and SOLDIDADARE=False
  1452.   Proc DAIUNOGGETTO
  1453.  Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE>0 and SOLDIDADARE=False
  1454.   Proc DAIUNPERSONAGGIO
  1455.  Else 
  1456.   Print At(0,ULTIMALINEA);"Non hai oggetti, personaggi o soldi da dare";
  1457.   If _MUSICA=False
  1458.    Bell 1
  1459.   End If 
  1460.   Proc _ASPETTA
  1461.  End If 
  1462. Else 
  1463.  Print At(0,ULTIMALINEA);"Non ci sono personaggi a cui dare";
  1464.  If _MUSICA=False
  1465.   Bell 1
  1466.  End If 
  1467.  Proc _ASPETTA
  1468. End If 
  1469. End Proc
  1470. Procedure DAIAPAO[AZIONE,P]
  1471. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1472. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1473.  PERSONAGGIOTROVATO=A
  1474. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1475.  PERSONAGGIOTROVATO=A
  1476. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1477.  PERSONAGGIOTROVATO=A
  1478. End If 
  1479. If PERSONAGGIOTROVATO>-1
  1480.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  1481.  For A=0 To NUMEROO
  1482.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1483.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  1484.    B=A
  1485.   End If 
  1486.  Next A
  1487.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  1488.   Pop Proc
  1489.  End If 
  1490.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  1491.   A=B
  1492.  Else 
  1493.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  1494.   B=0
  1495.   For A=0 To NUMEROO
  1496.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1497.     OGGETTODELPERSONAGGIOP(B)=A
  1498.     Inc B
  1499.    End If 
  1500.   Next A
  1501.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  1502.  End If 
  1503.  POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1504.  If Btst(1,TIPOO(A))=True
  1505.   If PERSONAGGIOTROVATO=0
  1506.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  1507.   End If 
  1508.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1509.   Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1510.  Else 
  1511.   If PERSONAGGIOTROVATO=0
  1512.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  1513.   End If 
  1514.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1515.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1516.  End If 
  1517.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1518.   For B=0 To NUMEROO
  1519.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1520.     If Btst(1,TIPOO(B))=True
  1521.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1522.      Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1523.     Else 
  1524.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1525.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1526.     End If 
  1527.    End If 
  1528.   Next B
  1529.   For B=1 To NUMEROP
  1530.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1531.     Add PESONETTOP(P),-PESOP(B)*1000
  1532.     Add PESONETTOP(P),-PESONETTOP(B)
  1533.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1534.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1535.    End If 
  1536.   Next B
  1537.  End If 
  1538.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1539.   If PERSONAGGIOTROVATO=0
  1540.    Print NOMEP$(P);" ti d� 1 ";
  1541.   Else 
  1542.    Print NOMEP$(P);" d� 1 ";
  1543.   End If 
  1544.   If Btst(1,TIPOO(A))=True
  1545.    Print NOMESRO$(CATEGORIAO(A));
  1546.   Else 
  1547.    Print NOMESCO$(CATEGORIAO(A));
  1548.   End If 
  1549.   If PERSONAGGIOTROVATO=0
  1550.    Print 
  1551.   Else 
  1552.    Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1553.   End If 
  1554.  End If 
  1555.  Dec PARAAAZIONEP(AZIONE,P)
  1556.  If PARAAAZIONEP(AZIONE,P)=0
  1557.   FINEA(AZIONE,P)=True
  1558.  End If 
  1559. End If 
  1560. End Proc
  1561. Procedure DAIAPAOB[AZIONE,P]
  1562. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1563. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1564.  PERSONAGGIOTROVATO=A
  1565. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1566.  PERSONAGGIOTROVATO=A
  1567. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1568.  PERSONAGGIOTROVATO=A
  1569. End If 
  1570. If PERSONAGGIOTROVATO>-1
  1571.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  1572.  For A=0 To NUMEROO
  1573.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  1574.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  1575.    B=A
  1576.   End If 
  1577.  Next A
  1578.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  1579.   Pop Proc
  1580.  End If 
  1581.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  1582.   A=B
  1583.  Else 
  1584.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  1585.   B=0
  1586.   For A=0 To NUMEROO
  1587.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  1588.     OGGETTODELPERSONAGGIOP(B)=A
  1589.     Inc B
  1590.    End If 
  1591.   Next A
  1592.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  1593.  End If 
  1594.  POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1595.  If Btst(1,TIPOO(A))=True
  1596.   If PERSONAGGIOTROVATO=0
  1597.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  1598.   End If 
  1599.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1600.   Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1601.  Else 
  1602.   If PERSONAGGIOTROVATO=0
  1603.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  1604.   End If 
  1605.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1606.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1607.  End If 
  1608.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1609.   For B=0 To NUMEROO
  1610.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1611.     If Btst(1,TIPOO(B))=True
  1612.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1613.      Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1614.     Else 
  1615.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1616.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1617.     End If 
  1618.    End If 
  1619.   Next B
  1620.   For B=1 To NUMEROP
  1621.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1622.     Add PESONETTOP(P),-PESOP(B)*1000
  1623.     Add PESONETTOP(P),-PESONETTOP(B)
  1624.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1625.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1626.    End If 
  1627.   Next B
  1628.  End If 
  1629.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1630.   If PERSONAGGIOTROVATO=0
  1631.    Print NOMEP$(P);" ti d� 1 ";
  1632.   Else 
  1633.    Print NOMEP$(P);" d� 1 ";
  1634.   End If 
  1635.   If Btst(1,TIPOO(A))=True
  1636.    Print NOMESRO$(CATEGORIAO(A));
  1637.   Else 
  1638.    Print NOMESCO$(CATEGORIAO(A));
  1639.   End If 
  1640.   If PERSONAGGIOTROVATO=0
  1641.    Print 
  1642.   Else 
  1643.    Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1644.   End If 
  1645.  End If 
  1646.  Dec PARAAAZIONEP(AZIONE,P)
  1647.  If PARAAAZIONEP(AZIONE,P)=0
  1648.   FINEA(AZIONE,P)=True
  1649.  End If 
  1650. End If 
  1651. End Proc
  1652. Procedure DAIAPAOTB[AZIONE,P]
  1653. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1654. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1655.  PERSONAGGIOTROVATO=A
  1656. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1657.  PERSONAGGIOTROVATO=A
  1658. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1659.  PERSONAGGIOTROVATO=A
  1660. End If 
  1661. If PERSONAGGIOTROVATO>-1
  1662.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  1663.  For A=0 To NUMEROO
  1664.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  1665.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  1666.    B=A
  1667.   End If 
  1668.  Next A
  1669.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  1670.   Pop Proc
  1671.  End If 
  1672.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  1673.   A=B
  1674.  Else 
  1675.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  1676.   B=0
  1677.   For A=0 To NUMEROO
  1678.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  1679.     OGGETTODELPERSONAGGIOP(B)=A
  1680.     Inc B
  1681.    End If 
  1682.   Next A
  1683.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  1684.  End If 
  1685.  For A=0 To NUMEROO
  1686.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  1687.    POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1688.    If Btst(1,TIPOO(A))=True
  1689.     If PERSONAGGIOTROVATO=0
  1690.      Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  1691.     End If 
  1692.     Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1693.     Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1694.    Else 
  1695.     If PERSONAGGIOTROVATO=0
  1696.      Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  1697.     End If 
  1698.     Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1699.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1700.    End If 
  1701.    If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1702.     For B=0 To NUMEROO
  1703.      If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1704.       If Btst(1,TIPOO(B))=True
  1705.        Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1706.        Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1707.       Else 
  1708.        Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1709.        Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1710.       End If 
  1711.      End If 
  1712.     Next B
  1713.     For B=1 To NUMEROP
  1714.      If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1715.       Add PESONETTOP(P),-PESOP(B)*1000
  1716.       Add PESONETTOP(P),-PESONETTOP(B)
  1717.       Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1718.       Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1719.      End If 
  1720.     Next B
  1721.    End If 
  1722.    If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1723.     If PERSONAGGIOTROVATO=0
  1724.      Print NOMEP$(P);" ti d� 1 ";
  1725.     Else 
  1726.      Print NOMEP$(P);" d� 1 ";
  1727.     End If 
  1728.     If Btst(1,TIPOO(A))=True
  1729.      Print NOMESRO$(CATEGORIAO(A));
  1730.     Else 
  1731.      Print NOMESCO$(CATEGORIAO(A));
  1732.     End If 
  1733.     If PERSONAGGIOTROVATO=0
  1734.      Print 
  1735.     Else 
  1736.      Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1737.     End If 
  1738.    End If 
  1739.    Dec PARAAAZIONEP(AZIONE,P)
  1740.    If PARAAAZIONEP(AZIONE,P)=0
  1741.     FINEA(AZIONE,P)=True
  1742.    End If 
  1743.    Exit 
  1744.   End If 
  1745.  Next A
  1746. End If 
  1747. End Proc
  1748. Procedure DAIAPAP[AZIONE,P]
  1749. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1750. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1751.  PERSONAGGIOTROVATO=A
  1752. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1753.  PERSONAGGIOTROVATO=A
  1754. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1755.  PERSONAGGIOTROVATO=A
  1756. End If 
  1757. If PERSONAGGIOTROVATO>-1
  1758.  For A=0 To NUMEROP
  1759.   If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  1760.    POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  1761.    Add PESONETTOP(P),-PESOP(A)*1000
  1762.    Add PESONETTOP(P),-PESONETTOP(A)
  1763.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  1764.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  1765.    If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1766.     If PERSONAGGIOTROVATO=0
  1767.      Print NOMEP$(P);" ti d� ";
  1768.     Else 
  1769.      Print NOMEP$(P);" d� ";
  1770.     End If 
  1771.     Print NOMEP$(A);
  1772.     If PERSONAGGIOTROVATO=0
  1773.      Print 
  1774.     Else 
  1775.      Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1776.     End If 
  1777.    End If 
  1778.    Dec PARAAAZIONEP(AZIONE,P)
  1779.    If PARAAAZIONEP(AZIONE,P)=0
  1780.     FINEA(AZIONE,P)=True
  1781.    End If 
  1782.    Exit 
  1783.   End If 
  1784.  Next A
  1785. End If 
  1786. End Proc
  1787. Procedure DAIAPPA[AZIONE,P]
  1788. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1789. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1790.  PERSONAGGIOTROVATO=A
  1791. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1792.  PERSONAGGIOTROVATO=A
  1793. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1794.  PERSONAGGIOTROVATO=A
  1795. End If 
  1796. If PERSONAGGIOTROVATO>-1
  1797.  A=PARAAAZIONEP(AZIONE,P)
  1798.  If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  1799.   POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  1800.   Add PESONETTOP(P),-PESOP(A)*1000
  1801.   Add PESONETTOP(P),-PESONETTOP(A)
  1802.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  1803.   Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  1804.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1805.    If PERSONAGGIOTROVATO=0
  1806.     Print NOMEP$(P);" ti d� ";
  1807.    Else 
  1808.     Print NOMEP$(P);" d� ";
  1809.    End If 
  1810.    Print NOMEP$(A);
  1811.    If PERSONAGGIOTROVATO=0
  1812.     Print 
  1813.    Else 
  1814.     Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1815.    End If 
  1816.   End If 
  1817.   FINEA(AZIONE,P)=True
  1818.  End If 
  1819. End If 
  1820. End Proc
  1821. Procedure DAIAPABO[AZIONE,P]
  1822. A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  1823. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1824.  PERSONAGGIOTROVATO=A
  1825. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1826.  PERSONAGGIOTROVATO=A
  1827. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1828.  PERSONAGGIOTROVATO=A
  1829. End If 
  1830. If PERSONAGGIOTROVATO>-1
  1831.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  1832.  For A=0 To NUMEROO
  1833.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1834.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  1835.    B=A
  1836.   End If 
  1837.  Next A
  1838.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  1839.   Pop Proc
  1840.  End If 
  1841.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  1842.   A=B
  1843.  Else 
  1844.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  1845.   B=0
  1846.   For A=0 To NUMEROO
  1847.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1848.     OGGETTODELPERSONAGGIOP(B)=A
  1849.     Inc B
  1850.    End If 
  1851.   Next A
  1852.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  1853.  End If 
  1854.  POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1855.  If Btst(1,TIPOO(A))=True
  1856.   If PERSONAGGIOTROVATO=0
  1857.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  1858.   End If 
  1859.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1860.   Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1861.  Else 
  1862.   If PERSONAGGIOTROVATO=0
  1863.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  1864.   End If 
  1865.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1866.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1867.  End If 
  1868.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1869.   For B=0 To NUMEROO
  1870.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1871.     If Btst(1,TIPOO(B))=True
  1872.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1873.      Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1874.     Else 
  1875.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1876.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1877.     End If 
  1878.    End If 
  1879.   Next B
  1880.   For B=1 To NUMEROP
  1881.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1882.     Add PESONETTOP(P),-PESOP(B)*1000
  1883.     Add PESONETTOP(P),-PESONETTOP(B)
  1884.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1885.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1886.    End If 
  1887.   Next B
  1888.  End If 
  1889.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1890.   If PERSONAGGIOTROVATO=0
  1891.    Print NOMEP$(P);" ti d� 1 ";
  1892.   Else 
  1893.    Print NOMEP$(P);" d� 1 ";
  1894.   End If 
  1895.   If Btst(1,TIPOO(A))=True
  1896.    Print NOMESRO$(CATEGORIAO(A));
  1897.   Else 
  1898.    Print NOMESCO$(CATEGORIAO(A));
  1899.   End If 
  1900.   If PERSONAGGIOTROVATO=0
  1901.    Print 
  1902.   Else 
  1903.    Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1904.   End If 
  1905.  End If 
  1906.  Dec PARABAZIONEP(AZIONE,P)
  1907.  If PARABAZIONEP(AZIONE,P)=0
  1908.   FINEA(AZIONE,P)=True
  1909.  End If 
  1910. End If 
  1911. End Proc
  1912. Procedure DAIAPABOC[AZIONE,P]
  1913. A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  1914. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1915.  PERSONAGGIOTROVATO=A
  1916. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1917.  PERSONAGGIOTROVATO=A
  1918. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1919.  PERSONAGGIOTROVATO=A
  1920. End If 
  1921. If PERSONAGGIOTROVATO>-1
  1922.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  1923.  For A=0 To NUMEROO
  1924.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARACAZIONEP(AZIONE,P)
  1925.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  1926.    B=A
  1927.   End If 
  1928.  Next A
  1929.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  1930.   Pop Proc
  1931.  End If 
  1932.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  1933.   A=B
  1934.  Else 
  1935.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  1936.   B=0
  1937.   For A=0 To NUMEROO
  1938.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARACAZIONEP(AZIONE,P)
  1939.     OGGETTODELPERSONAGGIOP(B)=A
  1940.     Inc B
  1941.    End If 
  1942.   Next A
  1943.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  1944.  End If 
  1945.  POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1946.  If Btst(1,TIPOO(A))=True
  1947.   If PERSONAGGIOTROVATO=0
  1948.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  1949.   End If 
  1950.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1951.   Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1952.  Else 
  1953.   If PERSONAGGIOTROVATO=0
  1954.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  1955.   End If 
  1956.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1957.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1958.  End If 
  1959.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1960.   For B=0 To NUMEROO
  1961.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1962.     If Btst(1,TIPOO(B))=True
  1963.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1964.      Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1965.     Else 
  1966.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1967.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1968.     End If 
  1969.    End If 
  1970.   Next B
  1971.   For B=1 To NUMEROP
  1972.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1973.     Add PESONETTOP(P),-PESOP(B)*1000
  1974.     Add PESONETTOP(P),-PESONETTOP(B)
  1975.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1976.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1977.    End If 
  1978.   Next B
  1979.  End If 
  1980.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1981.   If PERSONAGGIOTROVATO=0
  1982.    Print NOMEP$(P);" ti d� 1 ";
  1983.   Else 
  1984.    Print NOMEP$(P);" d� 1 ";
  1985.   End If 
  1986.   If Btst(1,TIPOO(A))=True
  1987.    Print NOMESRO$(CATEGORIAO(A));
  1988.   Else 
  1989.    Print NOMESCO$(CATEGORIAO(A));
  1990.   End If 
  1991.   If PERSONAGGIOTROVATO=0
  1992.    Print 
  1993.   Else 
  1994.    Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1995.   End If 
  1996.  End If 
  1997.  Dec PARABAZIONEP(AZIONE,P)
  1998.  If PARABAZIONEP(AZIONE,P)=0
  1999.   FINEA(AZIONE,P)=True
  2000.  End If 
  2001. End If 
  2002. End Proc
  2003. Procedure DAIAPABOTC[AZIONE,P]
  2004. A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  2005. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  2006.  PERSONAGGIOTROVATO=A
  2007. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  2008.  PERSONAGGIOTROVATO=A
  2009. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  2010.  PERSONAGGIOTROVATO=A
  2011. End If 
  2012. If PERSONAGGIOTROVATO>-1
  2013.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  2014.  For A=0 To NUMEROO
  2015.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARACAZIONEP(AZIONE,P)
  2016.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  2017.    B=A
  2018.   End If 
  2019.  Next A
  2020.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  2021.   Pop Proc
  2022.  End If 
  2023.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  2024.   A=B
  2025.  Else 
  2026.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  2027.   B=0
  2028.   For A=0 To NUMEROO
  2029.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARACAZIONEP(AZIONE,P)
  2030.     OGGETTODELPERSONAGGIOP(B)=A
  2031.     Inc B
  2032.    End If 
  2033.   Next A
  2034.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  2035.  End If 
  2036.  POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  2037.  If Btst(1,TIPOO(A))=True
  2038.   If PERSONAGGIOTROVATO=0
  2039.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  2040.   End If 
  2041.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  2042.   Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  2043.  Else 
  2044.   If PERSONAGGIOTROVATO=0
  2045.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  2046.   End If 
  2047.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  2048.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  2049.  End If 
  2050.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  2051.   For B=0 To NUMEROO
  2052.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  2053.     If Btst(1,TIPOO(B))=True
  2054.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  2055.      Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  2056.     Else 
  2057.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  2058.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  2059.     End If 
  2060.    End If 
  2061.   Next B
  2062.   For B=1 To NUMEROP
  2063.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  2064.     Add PESONETTOP(P),-PESOP(B)*1000
  2065.     Add PESONETTOP(P),-PESONETTOP(B)
  2066.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  2067.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  2068.    End If 
  2069.   Next B
  2070.  End If 
  2071.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  2072.   If PERSONAGGIOTROVATO=0
  2073.    Print NOMEP$(P);" ti d� 1 ";
  2074.   Else 
  2075.    Print NOMEP$(P);" d� 1 ";
  2076.   End If 
  2077.   If Btst(1,TIPOO(A))=True
  2078.    Print NOMESRO$(CATEGORIAO(A));
  2079.   Else 
  2080.    Print NOMESCO$(CATEGORIAO(A));
  2081.   End If 
  2082.   If PERSONAGGIOTROVATO=0
  2083.    Print 
  2084.   Else 
  2085.    Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  2086.   End If 
  2087.  End If 
  2088.  Dec PARABAZIONEP(AZIONE,P)
  2089.  If PARABAZIONEP(AZIONE,P)=0
  2090.   FINEA(AZIONE,P)=True
  2091.  End If 
  2092. End If 
  2093. End Proc
  2094. Procedure DAIAPABP[AZIONE,P]
  2095. A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  2096. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  2097.  PERSONAGGIOTROVATO=A
  2098. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  2099.  PERSONAGGIOTROVATO=A
  2100. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  2101.  PERSONAGGIOTROVATO=A
  2102. End If 
  2103. If PERSONAGGIOTROVATO>-1
  2104.  For A=0 To NUMEROP
  2105.   If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  2106.    POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  2107.    Add PESONETTOP(P),-PESOP(A)*1000
  2108.    Add PESONETTOP(P),-PESONETTOP(A)
  2109.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  2110.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  2111.    If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  2112.     If PERSONAGGIOTROVATO=0
  2113.      Print NOMEP$(P);" ti d� ";
  2114.     Else 
  2115.      Print NOMEP$(P);" d� ";
  2116.     End If 
  2117.     Print NOMEP$(A);
  2118.     If PERSONAGGIOTROVATO=0
  2119.      Print 
  2120.     Else 
  2121.      Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  2122.     End If 
  2123.    End If 
  2124.    Dec PARABAZIONEP(AZIONE,P)
  2125.    If PARABAZIONEP(AZIONE,P)=0
  2126.     FINEA(AZIONE,P)=True
  2127.    End If 
  2128.    Exit 
  2129.   End If 
  2130.  Next A
  2131. End If 
  2132. End Proc
  2133. Procedure DAIAPAPB[AZIONE,P]
  2134. A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  2135. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  2136.  PERSONAGGIOTROVATO=A
  2137. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  2138.  PERSONAGGIOTROVATO=A
  2139. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  2140.  PERSONAGGIOTROVATO=A
  2141. End If 
  2142. If PERSONAGGIOTROVATO>-1
  2143.  A=PARABAZIONEP(AZIONE,P)
  2144.  If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  2145.   POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  2146.   Add PESONETTOP(P),-PESOP(A)*1000
  2147.   Add PESONETTOP(P),-PESONETTOP(A)
  2148.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  2149.   Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  2150.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  2151.    If PERSONAGGIOTROVATO=0
  2152.     Print NOMEP$(P);" ti d� ";
  2153.    Else 
  2154.     Print NOMEP$(P);" d� ";
  2155.    End If 
  2156.    Print NOMEP$(A);
  2157.    If PERSONAGGIOTROVATO=0
  2158.     Print 
  2159.    Else 
  2160.     Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  2161.    End If 
  2162.   End If 
  2163.   FINEA(AZIONE,P)=True
  2164.  End If 
  2165. End If 
  2166. End Proc
  2167. Procedure DAIDEISOLDI
  2168. Locate 0,ULTIMALINEA : Input "Quanti soldi vuoi dare (0-"+Str$(SOLDIP(0))-" "+") ?>";SOLDIDADARE$;
  2169. Curs Off 
  2170. If SOLDIDADARE$<>""
  2171.  SOLDIDADARE=Val(SOLDIDADARE$)
  2172.  Proc LIMITI[SOLDIDADARE,0,SOLDIP(0)] : SOLDIDADARE=Param
  2173.  If SOLDIDADARE>0
  2174.   Add SOLDIP(0),-SOLDIDADARE*PESOS
  2175.   Proc PERSONAGGIORICEVENTE["S",SOLDIDADARE]
  2176.  End If 
  2177. End If 
  2178. End Proc
  2179. Procedure DAIUNOGGETTO
  2180. For A=0 To NUMEROCO
  2181.  If OGGETTIDELPERSONAGGIO0(A)>0
  2182.   Inc CATEGORIEOGGETTI
  2183.  End If 
  2184.  If RESTIDELPERSONAGGIO0(A)>0
  2185.   Inc CATEGORIEOGGETTI
  2186.  End If 
  2187. Next A
  2188. If CATEGORIEOGGETTI>0
  2189.  If CATEGORIEOGGETTI>1
  2190.   Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi dare ?>";OGGETTO$;
  2191.   Curs Off 
  2192.   For A=0 To NUMEROO
  2193.    If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  2194.     If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A)))
  2195.      Proc PERSONAGGIORICEVENTE["O",A] : Exit 
  2196.     Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A)))
  2197.      Proc PERSONAGGIORICEVENTE["O",A] : Exit 
  2198.     End If 
  2199.    End If 
  2200.   Next A
  2201.  Else 
  2202.   For A=0 To NUMEROO
  2203.    If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  2204.     Proc PERSONAGGIORICEVENTE["O",A] : Exit 
  2205.    End If 
  2206.   Next A
  2207.  End If 
  2208. End If 
  2209. End Proc
  2210. Procedure DAIUNPERSONAGGIO
  2211. For A=1 To NUMEROP
  2212.  If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  2213.   Inc PERSONAGGI
  2214.  End If 
  2215. Next A
  2216. If PERSONAGGI>0
  2217.  If PERSONAGGI>1
  2218.   Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi dare ?>";PERSONAGGIO$;
  2219.   Curs Off 
  2220.   For A=0 To NUMEROP
  2221.    If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A)) and POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  2222.     Proc PERSONAGGIORICEVENTE["P",A]
  2223.     Exit 
  2224.    End If 
  2225.   Next A
  2226.   If A=NUMEROP+1
  2227.    Locate 0,ULTIMALINEA : Cline : Print "Non trasporti nessun ";PERSONAGGIO$;
  2228.    If _MUSICA=False
  2229.     Bell 1
  2230.    End If 
  2231.    Proc _ASPETTA
  2232.   End If 
  2233.  Else 
  2234.   For A=0 To NUMEROP
  2235.    If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  2236.     Proc PERSONAGGIORICEVENTE["P",A]
  2237.    End If 
  2238.   Next A
  2239.  End If 
  2240. End If 
  2241. End Proc
  2242. Procedure DAVARIABILIABANCO[M0DO]
  2243. Shared LUNGHEZZABANCO
  2244. Cls 
  2245. If M0DO=True
  2246.  TIC["Vuoi salvare anche il tempo trascorso di gioco (s/n) ?",ULTIMALINEA]
  2247.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  2248.  If RISPOSTA$="s"
  2249.   TEMP0TRASCORSODASALVARE=TEMP0TRASCORSO
  2250.  Else 
  2251.   TEMP0TRASCORSODASALVARE=0
  2252.  End If 
  2253.  TIC["Un attimo che converto i dati...",ULTIMALINEA]
  2254.  Reserve As Work BANCO,LUNGHEZZABANCO
  2255.  INDIRIZZO=Start(BANCO)
  2256.  Poke$ INDIRIZZO,"Adventures Conceiver"+Chr$(10)
  2257.  Add INDIRIZZO,21
  2258.  DATO$="Nemici attivi o no:"+Chr$(10)
  2259.  Poke$ INDIRIZZO,DATO$
  2260.  Add INDIRIZZO,Len(DATO$)
  2261.  DATO$=Str$(ANEMICI)-" "+Chr$(10)
  2262.  Poke$ INDIRIZZO,DATO$
  2263.  Add INDIRIZZO,Len(DATO$)
  2264.  DATO$="Numero delle categorie degli oggetti:"+Chr$(10)
  2265.  Poke$ INDIRIZZO,DATO$
  2266.  Add INDIRIZZO,Len(DATO$)
  2267.  DATO$=Str$(NUMEROCO)-" "+Chr$(10)
  2268.  Poke$ INDIRIZZO,DATO$
  2269.  Add INDIRIZZO,Len(DATO$)
  2270.  For A=0 To NUMEROCO
  2271.   DATO$="Categoria"+Str$(A)+">"+Chr$(10)
  2272.   Poke$ INDIRIZZO,DATO$
  2273.   Add INDIRIZZO,Len(DATO$)
  2274.   DATO$="Nome singolare:"+Chr$(10)
  2275.   Poke$ INDIRIZZO,DATO$
  2276.   Add INDIRIZZO,Len(DATO$)
  2277.   DATO$=NOMESCO$(A)+Chr$(10)
  2278.   Poke$ INDIRIZZO,DATO$
  2279.   Add INDIRIZZO,Len(DATO$)
  2280.   DATO$="Nome plurale:"+Chr$(10)
  2281.   Poke$ INDIRIZZO,DATO$
  2282.   Add INDIRIZZO,Len(DATO$)
  2283.   DATO$=NOMEPCO$(A)+Chr$(10)
  2284.   Poke$ INDIRIZZO,DATO$
  2285.   Add INDIRIZZO,Len(DATO$)
  2286.   DATO$="Nome singolare resto:"+Chr$(10)
  2287.   Poke$ INDIRIZZO,DATO$
  2288.   Add INDIRIZZO,Len(DATO$)
  2289.   DATO$=NOMESRO$(A)+Chr$(10)
  2290.   Poke$ INDIRIZZO,DATO$
  2291.   Add INDIRIZZO,Len(DATO$)
  2292.   DATO$="Nome plurale resto:"+Chr$(10)
  2293.   Poke$ INDIRIZZO,DATO$
  2294.   Add INDIRIZZO,Len(DATO$)
  2295.   DATO$=NOMEPRO$(A)+Chr$(10)
  2296.   Poke$ INDIRIZZO,DATO$
  2297.   Add INDIRIZZO,Len(DATO$)
  2298.   DATO$="Peso:"+Chr$(10)
  2299.   Poke$ INDIRIZZO,DATO$
  2300.   Add INDIRIZZO,Len(DATO$)
  2301.   DATO$=Str$(PESOCO(A))-" "+Chr$(10)
  2302.   Poke$ INDIRIZZO,DATO$
  2303.   Add INDIRIZZO,Len(DATO$)
  2304.   DATO$="Peso resto:"+Chr$(10)
  2305.   Poke$ INDIRIZZO,DATO$
  2306.   Add INDIRIZZO,Len(DATO$)
  2307.   DATO$=Str$(PESORESTOCO(A))-" "+Chr$(10)
  2308.   Poke$ INDIRIZZO,DATO$
  2309.   Add INDIRIZZO,Len(DATO$)
  2310.   DATO$="Tipo:"+Chr$(10)
  2311.   Poke$ INDIRIZZO,DATO$
  2312.   Add INDIRIZZO,Len(DATO$)
  2313.   DATO$=Str$(TIPOCO(A))-" "+Chr$(10)
  2314.   Poke$ INDIRIZZO,DATO$
  2315.   Add INDIRIZZO,Len(DATO$)
  2316.   DATO$="Parametro tipo:"+Chr$(10)
  2317.   Poke$ INDIRIZZO,DATO$
  2318.   Add INDIRIZZO,Len(DATO$)
  2319.   DATO$=Str$(PARATIPOCO(A))-" "+Chr$(10)
  2320.   Poke$ INDIRIZZO,DATO$
  2321.   Add INDIRIZZO,Len(DATO$)
  2322.   DATO$="Descrizione:"+Chr$(10)
  2323.   Poke$ INDIRIZZO,DATO$
  2324.   Add INDIRIZZO,Len(DATO$)
  2325.   DATO$=DESCRIZIONECO$(A)+"|"
  2326.   Poke$ INDIRIZZO,DATO$
  2327.   Add INDIRIZZO,Len(DATO$)
  2328.   DATO$="Oggetto del personaggio zero:"+Chr$(10)
  2329.   Poke$ INDIRIZZO,DATO$
  2330.   Add INDIRIZZO,Len(DATO$)
  2331.   DATO$=Str$(OGGETTIDELPERSONAGGIO0(A))-" "+Chr$(10)
  2332.   Poke$ INDIRIZZO,DATO$
  2333.   Add INDIRIZZO,Len(DATO$)
  2334.   DATO$="Resto del personaggio zero:"+Chr$(10)
  2335.   Poke$ INDIRIZZO,DATO$
  2336.   Add INDIRIZZO,Len(DATO$)
  2337.   DATO$=Str$(RESTIDELPERSONAGGIO0(A))-" "+Chr$(10)
  2338.   Poke$ INDIRIZZO,DATO$
  2339.   Add INDIRIZZO,Len(DATO$)
  2340.   DATO$="Oggetto dato:"+Chr$(10)
  2341.   Poke$ INDIRIZZO,DATO$
  2342.   Add INDIRIZZO,Len(DATO$)
  2343.   DATO$=Str$(OGGETTIDATIOLASCIATI(A))-" "+Chr$(10)
  2344.   Poke$ INDIRIZZO,DATO$
  2345.   Add INDIRIZZO,Len(DATO$)
  2346.  Next A
  2347.  DATO$="Numero degli edifici:"+Chr$(10)
  2348.  Poke$ INDIRIZZO,DATO$
  2349.  Add INDIRIZZO,Len(DATO$)
  2350.  DATO$=Str$(NUMEROE)-" "+Chr$(10)
  2351.  Poke$ INDIRIZZO,DATO$
  2352.  Add INDIRIZZO,Len(DATO$)
  2353.  If NUMERO>-1
  2354.   For A=0 To NUMEROE
  2355.    DATO$="Edificio"+Str$(A)+">"+Chr$(10)
  2356.    Poke$ INDIRIZZO,DATO$
  2357.    Add INDIRIZZO,Len(DATO$)
  2358.    DATO$="Nome:"+Chr$(10)
  2359.    Poke$ INDIRIZZO,DATO$
  2360.    Add INDIRIZZO,Len(DATO$)
  2361.    DATO$=NOMEE$(A)+Chr$(10)
  2362.    Poke$ INDIRIZZO,DATO$
  2363.    Add INDIRIZZO,Len(DATO$)
  2364.    DATO$="Descrizione:"+Chr$(10)
  2365.    Poke$ INDIRIZZO,DATO$
  2366.    Add INDIRIZZO,Len(DATO$)
  2367.    DATO$=DESCRIZIONEE$(A)+"|"
  2368.    Poke$ INDIRIZZO,DATO$
  2369.    Add INDIRIZZO,Len(DATO$)
  2370.    DATO$="Numero delle stanze:"+Chr$(10)
  2371.    Poke$ INDIRIZZO,DATO$
  2372.    Add INDIRIZZO,Len(DATO$)
  2373.    DATO$=Str$(NUMEROS(A))-" "+Chr$(10)
  2374.    Poke$ INDIRIZZO,DATO$
  2375.    Add INDIRIZZO,Len(DATO$)
  2376.    For B=0 To NUMEROS(A)
  2377.     DATO$="Stanza"+Str$(A)+">"+Chr$(10)
  2378.     Poke$ INDIRIZZO,DATO$
  2379.     Add INDIRIZZO,Len(DATO$)
  2380.     DATO$="Nome:"+Chr$(10)
  2381.     Poke$ INDIRIZZO,DATO$
  2382.     Add INDIRIZZO,Len(DATO$)
  2383.     DATO$=NOMES$(B,A)+Chr$(10)
  2384.     Poke$ INDIRIZZO,DATO$
  2385.     Add INDIRIZZO,Len(DATO$)
  2386.     DATO$="Luogo a Nord:"+Chr$(10)
  2387.     Poke$ INDIRIZZO,DATO$
  2388.     Add INDIRIZZO,Len(DATO$)
  2389.     DATO$=Str$(DREZIONES(0,B,A))-" "+Chr$(10)
  2390.     Poke$ INDIRIZZO,DATO$
  2391.     Add INDIRIZZO,Len(DATO$)
  2392.     DATO$="Luogo a NordEst:"+Chr$(10)
  2393.     Poke$ INDIRIZZO,DATO$
  2394.     Add INDIRIZZO,Len(DATO$)
  2395.     DATO$=Str$(DREZIONES(1,B,A))-" "+Chr$(10)
  2396.     Poke$ INDIRIZZO,DATO$
  2397.     Add INDIRIZZO,Len(DATO$)
  2398.     DATO$="Luogo a Est:"+Chr$(10)
  2399.     Poke$ INDIRIZZO,DATO$
  2400.     Add INDIRIZZO,Len(DATO$)
  2401.     DATO$=Str$(DREZIONES(2,B,A))-" "+Chr$(10)
  2402.     Poke$ INDIRIZZO,DATO$
  2403.     Add INDIRIZZO,Len(DATO$)
  2404.     DATO$="Luogo a SudEst:"+Chr$(10)
  2405.     Poke$ INDIRIZZO,DATO$
  2406.     Add INDIRIZZO,Len(DATO$)
  2407.     DATO$=Str$(DREZIONES(3,B,A))-" "+Chr$(10)
  2408.     Poke$ INDIRIZZO,DATO$
  2409.     Add INDIRIZZO,Len(DATO$)
  2410.     DATO$="Luogo a Sud:"+Chr$(10)
  2411.     Poke$ INDIRIZZO,DATO$
  2412.     Add INDIRIZZO,Len(DATO$)
  2413.     DATO$=Str$(DREZIONES(4,B,A))-" "+Chr$(10)
  2414.     Poke$ INDIRIZZO,DATO$
  2415.     Add INDIRIZZO,Len(DATO$)
  2416.     DATO$="Luogo a SudOvest:"+Chr$(10)
  2417.     Poke$ INDIRIZZO,DATO$
  2418.     Add INDIRIZZO,Len(DATO$)
  2419.     DATO$=Str$(DREZIONES(5,B,A))-" "+Chr$(10)
  2420.     Poke$ INDIRIZZO,DATO$
  2421.     Add INDIRIZZO,Len(DATO$)
  2422.     DATO$="Luogo a Ovest:"+Chr$(10)
  2423.     Poke$ INDIRIZZO,DATO$
  2424.     Add INDIRIZZO,Len(DATO$)
  2425.     DATO$=Str$(DREZIONES(6,B,A))-" "+Chr$(10)
  2426.     Poke$ INDIRIZZO,DATO$
  2427.     Add INDIRIZZO,Len(DATO$)
  2428.     DATO$="Luogo a NordOvest:"+Chr$(10)
  2429.     Poke$ INDIRIZZO,DATO$
  2430.     Add INDIRIZZO,Len(DATO$)
  2431.     DATO$=Str$(DREZIONES(7,B,A))-" "+Chr$(10)
  2432.     Poke$ INDIRIZZO,DATO$
  2433.     Add INDIRIZZO,Len(DATO$)
  2434.     DATO$="Luogo Sopra:"+Chr$(10)
  2435.     Poke$ INDIRIZZO,DATO$
  2436.     Add INDIRIZZO,Len(DATO$)
  2437.     DATO$=Str$(DREZIONES(8,B,A))-" "+Chr$(10)
  2438.     Poke$ INDIRIZZO,DATO$
  2439.     Add INDIRIZZO,Len(DATO$)
  2440.     DATO$="Luogo Sotto:"+Chr$(10)
  2441.     Poke$ INDIRIZZO,DATO$
  2442.     Add INDIRIZZO,Len(DATO$)
  2443.     DATO$=Str$(DREZIONES(9,B,A))-" "+Chr$(10)
  2444.     Poke$ INDIRIZZO,DATO$
  2445.     Add INDIRIZZO,Len(DATO$)
  2446.     DATO$="Soldi:"+Chr$(10)
  2447.     Poke$ INDIRIZZO,DATO$
  2448.     Add INDIRIZZO,Len(DATO$)
  2449.     DATO$=Str$(SOLDIS(B,A))-" "+Chr$(10)
  2450.     Poke$ INDIRIZZO,DATO$
  2451.     Add INDIRIZZO,Len(DATO$)
  2452.     DATO$="Descrizione:"+Chr$(10)
  2453.     Poke$ INDIRIZZO,DATO$
  2454.     Add INDIRIZZO,Len(DATO$)
  2455.     DATO$=DESCRIZIONES$(B,A)+"|"
  2456.     Poke$ INDIRIZZO,DATO$
  2457.     Add INDIRIZZO,Len(DATO$)
  2458.    Next B
  2459.   Next A
  2460.  End If 
  2461.  DATO$="Numero dei luoghi:"+Chr$(10)
  2462.  Poke$ INDIRIZZO,DATO$
  2463.  Add INDIRIZZO,Len(DATO$)
  2464.  DATO$=Str$(NUMEROL)-" "+Chr$(10)
  2465.  Poke$ INDIRIZZO,DATO$
  2466.  Add INDIRIZZO,Len(DATO$)
  2467.  For A=0 To NUMEROL
  2468.   DATO$="Luogo"+Str$(A)+">"+Chr$(10)
  2469.   Poke$ INDIRIZZO,DATO$
  2470.   Add INDIRIZZO,Len(DATO$)
  2471.   DATO$="Nome:"+Chr$(10)
  2472.   Poke$ INDIRIZZO,DATO$
  2473.   Add INDIRIZZO,Len(DATO$)
  2474.   DATO$=NOMEL$(A)+Chr$(10)
  2475.   Poke$ INDIRIZZO,DATO$
  2476.   Add INDIRIZZO,Len(DATO$)
  2477.   DATO$="Luogo a Nord:"+Chr$(10)
  2478.   Poke$ INDIRIZZO,DATO$
  2479.   Add INDIRIZZO,Len(DATO$)
  2480.   DATO$=Str$(DREZIONEL(0,A))-" "+Chr$(10)
  2481.   Poke$ INDIRIZZO,DATO$
  2482.   Add INDIRIZZO,Len(DATO$)
  2483.   DATO$="Luogo a NordEst:"+Chr$(10)
  2484.   Poke$ INDIRIZZO,DATO$
  2485.   Add INDIRIZZO,Len(DATO$)
  2486.   DATO$=Str$(DREZIONEL(1,A))-" "+Chr$(10)
  2487.   Poke$ INDIRIZZO,DATO$
  2488.   Add INDIRIZZO,Len(DATO$)
  2489.   DATO$="Luogo a Est:"+Chr$(10)
  2490.   Poke$ INDIRIZZO,DATO$
  2491.   Add INDIRIZZO,Len(DATO$)
  2492.   DATO$=Str$(DREZIONEL(2,A))-" "+Chr$(10)
  2493.   Poke$ INDIRIZZO,DATO$
  2494.   Add INDIRIZZO,Len(DATO$)
  2495.   DATO$="Luogo a SudEst:"+Chr$(10)
  2496.   Poke$ INDIRIZZO,DATO$
  2497.   Add INDIRIZZO,Len(DATO$)
  2498.   DATO$=Str$(DREZIONEL(3,A))-" "+Chr$(10)
  2499.   Poke$ INDIRIZZO,DATO$
  2500.   Add INDIRIZZO,Len(DATO$)
  2501.   DATO$="Luogo a Sud:"+Chr$(10)
  2502.   Poke$ INDIRIZZO,DATO$
  2503.   Add INDIRIZZO,Len(DATO$)
  2504.   DATO$=Str$(DREZIONEL(4,A))-" "+Chr$(10)
  2505.   Poke$ INDIRIZZO,DATO$
  2506.   Add INDIRIZZO,Len(DATO$)
  2507.   DATO$="Luogo a SudOvest:"+Chr$(10)
  2508.   Poke$ INDIRIZZO,DATO$
  2509.   Add INDIRIZZO,Len(DATO$)
  2510.   DATO$=Str$(DREZIONEL(5,A))-" "+Chr$(10)
  2511.   Poke$ INDIRIZZO,DATO$
  2512.   Add INDIRIZZO,Len(DATO$)
  2513.   DATO$="Luogo a Ovest:"+Chr$(10)
  2514.   Poke$ INDIRIZZO,DATO$
  2515.   Add INDIRIZZO,Len(DATO$)
  2516.   DATO$=Str$(DREZIONEL(6,A))-" "+Chr$(10)
  2517.   Poke$ INDIRIZZO,DATO$
  2518.   Add INDIRIZZO,Len(DATO$)
  2519.   DATO$="Luogo a NordOvest:"+Chr$(10)
  2520.   Poke$ INDIRIZZO,DATO$
  2521.   Add INDIRIZZO,Len(DATO$)
  2522.   DATO$=Str$(DREZIONEL(7,A))-" "+Chr$(10)
  2523.   Poke$ INDIRIZZO,DATO$
  2524.   Add INDIRIZZO,Len(DATO$)
  2525.   DATO$="Luogo Sopra:"+Chr$(10)
  2526.   Poke$ INDIRIZZO,DATO$
  2527.   Add INDIRIZZO,Len(DATO$)
  2528.   DATO$=Str$(DREZIONEL(8,A))-" "+Chr$(10)
  2529.   Poke$ INDIRIZZO,DATO$
  2530.   Add INDIRIZZO,Len(DATO$)
  2531.   DATO$="Luogo Sotto:"+Chr$(10)
  2532.   Poke$ INDIRIZZO,DATO$
  2533.   Add INDIRIZZO,Len(DATO$)
  2534.   DATO$=Str$(DREZIONEL(9,A))-" "+Chr$(10)
  2535.   Poke$ INDIRIZZO,DATO$
  2536.   Add INDIRIZZO,Len(DATO$)
  2537.   DATO$="Soldi:"+Chr$(10)
  2538.   Poke$ INDIRIZZO,DATO$
  2539.   Add INDIRIZZO,Len(DATO$)
  2540.   DATO$=Str$(SOLDIL(A))-" "+Chr$(10)
  2541.   Poke$ INDIRIZZO,DATO$
  2542.   Add INDIRIZZO,Len(DATO$)
  2543.   DATO$="Regione:"+Chr$(10)
  2544.   Poke$ INDIRIZZO,DATO$
  2545.   Add INDIRIZZO,Len(DATO$)
  2546.   DATO$=Str$(REGIONEL(A))-" "+Chr$(10)
  2547.   Poke$ INDIRIZZO,DATO$
  2548.   Add INDIRIZZO,Len(DATO$)
  2549.   DATO$="Tipo di luogo:"+Chr$(10)
  2550.   Poke$ INDIRIZZO,DATO$
  2551.   Add INDIRIZZO,Len(DATO$)
  2552.   DATO$=Str$(TIPOL(A))-" "+Chr$(10)
  2553.   Poke$ INDIRIZZO,DATO$
  2554.   Add INDIRIZZO,Len(DATO$)
  2555.   DATO$="Descrizione:"+Chr$(10)
  2556.   Poke$ INDIRIZZO,DATO$
  2557.   Add INDIRIZZO,Len(DATO$)
  2558.   DATO$=DESCRIZIONEL$(A)+"|"
  2559.   Poke$ INDIRIZZO,DATO$
  2560.   Add INDIRIZZO,Len(DATO$)
  2561.  Next A
  2562.  DATO$="Numero degli oggetti:"+Chr$(10)
  2563.  Poke$ INDIRIZZO,DATO$
  2564.  Add INDIRIZZO,Len(DATO$)
  2565.  DATO$=Str$(NUMEROO)-" "+Chr$(10)
  2566.  Poke$ INDIRIZZO,DATO$
  2567.  Add INDIRIZZO,Len(DATO$)
  2568.  For A=0 To NUMEROO
  2569.   DATO$="Oggetto"+Str$(A)+">"+Chr$(10)
  2570.   Poke$ INDIRIZZO,DATO$
  2571.   Add INDIRIZZO,Len(DATO$)
  2572.   DATO$="Categoria:"+Chr$(10)
  2573.   Poke$ INDIRIZZO,DATO$
  2574.   Add INDIRIZZO,Len(DATO$)
  2575.   DATO$=Str$(CATEGORIAO(A))-" "+Chr$(10)
  2576.   Poke$ INDIRIZZO,DATO$
  2577.   Add INDIRIZZO,Len(DATO$)
  2578.   DATO$="Posizione:"+Chr$(10)
  2579.   Poke$ INDIRIZZO,DATO$
  2580.   Add INDIRIZZO,Len(DATO$)
  2581.   DATO$=Str$(POSIZIONEO(A))-" "+Chr$(10)
  2582.   Poke$ INDIRIZZO,DATO$
  2583.   Add INDIRIZZO,Len(DATO$)
  2584.   DATO$="Tipo:"+Chr$(10)
  2585.   Poke$ INDIRIZZO,DATO$
  2586.   Add INDIRIZZO,Len(DATO$)
  2587.   DATO$=Str$(TIPOO(A))-" "+Chr$(10)
  2588.   Poke$ INDIRIZZO,DATO$
  2589.   Add INDIRIZZO,Len(DATO$)
  2590.  Next A
  2591.  DATO$="Numero dei personaggi:"+Chr$(10)
  2592.  Poke$ INDIRIZZO,DATO$
  2593.  Add INDIRIZZO,Len(DATO$)
  2594.  DATO$=Str$(NUMEROP)-" "+Chr$(10)
  2595.  Poke$ INDIRIZZO,DATO$
  2596.  Add INDIRIZZO,Len(DATO$)
  2597.  For A=0 To NUMEROP
  2598.   DATO$="Personaggio"+Str$(A)+">"+Chr$(10)
  2599.   Poke$ INDIRIZZO,DATO$
  2600.   Add INDIRIZZO,Len(DATO$)
  2601.   DATO$="Nome:"+Chr$(10)
  2602.   Poke$ INDIRIZZO,DATO$
  2603.   Add INDIRIZZO,Len(DATO$)
  2604.   DATO$=NOMEP$(A)+Chr$(10)
  2605.   Poke$ INDIRIZZO,DATO$
  2606.   Add INDIRIZZO,Len(DATO$)
  2607.   DATO$="Posizione:"+Chr$(10)
  2608.   Poke$ INDIRIZZO,DATO$
  2609.   Add INDIRIZZO,Len(DATO$)
  2610.   DATO$=Str$(POSIZIONEP(A))-" "+Chr$(10)
  2611.   Poke$ INDIRIZZO,DATO$
  2612.   Add INDIRIZZO,Len(DATO$)
  2613.   DATO$="Costituzione:"+Chr$(10)
  2614.   Poke$ INDIRIZZO,DATO$
  2615.   Add INDIRIZZO,Len(DATO$)
  2616.   DATO$=Str$(C0STITUZIONEP(A))-" "+Chr$(10)
  2617.   Poke$ INDIRIZZO,DATO$
  2618.   Add INDIRIZZO,Len(DATO$)
  2619.   DATO$="Destrezza:"+Chr$(10)
  2620.   Poke$ INDIRIZZO,DATO$
  2621.   Add INDIRIZZO,Len(DATO$)
  2622.   DATO$=Str$(DESTREZZAP(A))-" "+Chr$(10)
  2623.   Poke$ INDIRIZZO,DATO$
  2624.   Add INDIRIZZO,Len(DATO$)
  2625.   DATO$="Forza:"+Chr$(10)
  2626.   Poke$ INDIRIZZO,DATO$
  2627.   Add INDIRIZZO,Len(DATO$)
  2628.   DATO$=Str$(F0RZAP(A))-" "+Chr$(10)
  2629.   Poke$ INDIRIZZO,DATO$
  2630.   Add INDIRIZZO,Len(DATO$)
  2631.   DATO$="Peso:"+Chr$(10)
  2632.   Poke$ INDIRIZZO,DATO$
  2633.   Add INDIRIZZO,Len(DATO$)
  2634.   DATO$=Str$(PESOP(A))-" "+Chr$(10)
  2635.   Poke$ INDIRIZZO,DATO$
  2636.   Add INDIRIZZO,Len(DATO$)
  2637.   DATO$="Peso netto:"+Chr$(10)
  2638.   Poke$ INDIRIZZO,DATO$
  2639.   Add INDIRIZZO,Len(DATO$)
  2640.   DATO$=Str$(PESONETTOP(A))-" "+Chr$(10)
  2641.   Poke$ INDIRIZZO,DATO$
  2642.   Add INDIRIZZO,Len(DATO$)
  2643.   DATO$="Resistenza:"+Chr$(10)
  2644.   Poke$ INDIRIZZO,DATO$
  2645.   Add INDIRIZZO,Len(DATO$)
  2646.   DATO$=Str$(RESISTENZAP(A))-" "+Chr$(10)
  2647.   Poke$ INDIRIZZO,DATO$
  2648.   Add INDIRIZZO,Len(DATO$)
  2649.   DATO$="Soldi:"+Chr$(10)
  2650.   Poke$ INDIRIZZO,DATO$
  2651.   Add INDIRIZZO,Len(DATO$)
  2652.   DATO$=Str$(SOLDIP(A))-" "+Chr$(10)
  2653.   Poke$ INDIRIZZO,DATO$
  2654.   Add INDIRIZZO,Len(DATO$)
  2655.   DATO$="Tipo:"+Chr$(10)
  2656.   Poke$ INDIRIZZO,DATO$
  2657.   Add INDIRIZZO,Len(DATO$)
  2658.   DATO$=Str$(TIPOP(A))-" "+Chr$(10)
  2659.   Poke$ INDIRIZZO,DATO$
  2660.   Add INDIRIZZO,Len(DATO$)
  2661.   DATO$="Descrizione:"+Chr$(10)
  2662.   Poke$ INDIRIZZO,DATO$
  2663.   Add INDIRIZZO,Len(DATO$)
  2664.   DATO$=DESCRIZIONEP$(A)+"|"
  2665.   Poke$ INDIRIZZO,DATO$
  2666.   Add INDIRIZZO,Len(DATO$)
  2667.   DATO$="Inizio sonno:"+Chr$(10)
  2668.   Poke$ INDIRIZZO,DATO$
  2669.   Add INDIRIZZO,Len(DATO$)
  2670.   DATO$=Str$(INIZIOSONNOP(A))-" "+Chr$(10)
  2671.   Poke$ INDIRIZZO,DATO$
  2672.   Add INDIRIZZO,Len(DATO$)
  2673.   DATO$="Durata sonno:"+Chr$(10)
  2674.   Poke$ INDIRIZZO,DATO$
  2675.   Add INDIRIZZO,Len(DATO$)
  2676.   DATO$=Str$(SONNOP(A))-" "+Chr$(10)
  2677.   Poke$ INDIRIZZO,DATO$
  2678.   Add INDIRIZZO,Len(DATO$)
  2679.   DATO$="Direzione presa:"+Chr$(10)
  2680.   Poke$ INDIRIZZO,DATO$
  2681.   Add INDIRIZZO,Len(DATO$)
  2682.   DATO$=Str$(DREZIONEPRESAP(A))-" "+Chr$(10)
  2683.   Poke$ INDIRIZZO,DATO$
  2684.   Add INDIRIZZO,Len(DATO$)
  2685.   DATO$="Luogo di destinazione:"+Chr$(10)
  2686.   Poke$ INDIRIZZO,DATO$
  2687.   Add INDIRIZZO,Len(DATO$)
  2688.   DATO$=Str$(LUOGODIDESTINAZIONEP(A))-" "+Chr$(10)
  2689.   Poke$ INDIRIZZO,DATO$
  2690.   Add INDIRIZZO,Len(DATO$)
  2691.   DATO$="Tempo di attraversamento:"+Chr$(10)
  2692.   Poke$ INDIRIZZO,DATO$
  2693.   Add INDIRIZZO,Len(DATO$)
  2694.   DATO$=Str$(TEMP0DIATTRAVERSAMENTOP(A))-" "+Chr$(10)
  2695.   Poke$ INDIRIZZO,DATO$
  2696.   Add INDIRIZZO,Len(DATO$)
  2697.   DATO$="Soldi ricevuti:"+Chr$(10)
  2698.   Poke$ INDIRIZZO,DATO$
  2699.   Add INDIRIZZO,Len(DATO$)
  2700.   DATO$=Str$(SOLDIRICEVUTIP(A))-" "+Chr$(10)
  2701.   Poke$ INDIRIZZO,DATO$
  2702.   Add INDIRIZZO,Len(DATO$)
  2703.   For B=0 To 7
  2704.    DATO$="Azione"+Str$(B)+">"+Chr$(10)
  2705.    Poke$ INDIRIZZO,DATO$
  2706.    Add INDIRIZZO,Len(DATO$)
  2707.    DATO$=Str$(AZIONEP(B,A))-" "+Chr$(10)
  2708.    Poke$ INDIRIZZO,DATO$
  2709.    Add INDIRIZZO,Len(DATO$)
  2710.    DATO$="Parametro A azione"+Str$(B)+":"+Chr$(10)
  2711.    Poke$ INDIRIZZO,DATO$
  2712.    Add INDIRIZZO,Len(DATO$)
  2713.    DATO$=Str$(PARAAAZIONEP(B,A))-" "+Chr$(10)
  2714.    Poke$ INDIRIZZO,DATO$
  2715.    Add INDIRIZZO,Len(DATO$)
  2716.    DATO$="Parametro B azione"+Str$(B)+":"+Chr$(10)
  2717.    Poke$ INDIRIZZO,DATO$
  2718.    Add INDIRIZZO,Len(DATO$)
  2719.    DATO$=Str$(PARABAZIONEP(B,A))-" "+Chr$(10)
  2720.    Poke$ INDIRIZZO,DATO$
  2721.    Add INDIRIZZO,Len(DATO$)
  2722.    DATO$="Parametro C azione"+Str$(B)+":"+Chr$(10)
  2723.    Poke$ INDIRIZZO,DATO$
  2724.    Add INDIRIZZO,Len(DATO$)
  2725.    DATO$=Str$(PARACAZIONEP(B,A))-" "+Chr$(10)
  2726.    Poke$ INDIRIZZO,DATO$
  2727.    Add INDIRIZZO,Len(DATO$)
  2728.   Next B
  2729.   DATO$="Posizione azione:"+Chr$(10)
  2730.   Poke$ INDIRIZZO,DATO$
  2731.   Add INDIRIZZO,Len(DATO$)
  2732.   DATO$=Str$(POSIZIONEA(A))-" "+Chr$(10)
  2733.   Poke$ INDIRIZZO,DATO$
  2734.   Add INDIRIZZO,Len(DATO$)
  2735.  Next A
  2736.  DATO$="Numero delle regioni:"+Chr$(10)
  2737.  Poke$ INDIRIZZO,DATO$
  2738.  Add INDIRIZZO,Len(DATO$)
  2739.  DATO$=Str$(NUMEROR)-" "+Chr$(10)
  2740.  Poke$ INDIRIZZO,DATO$
  2741.  Add INDIRIZZO,Len(DATO$)
  2742.  For A=0 To NUMEROR
  2743.   DATO$="Regione"+Str$(A)+">"+Chr$(10)
  2744.   Poke$ INDIRIZZO,DATO$
  2745.   Add INDIRIZZO,Len(DATO$)
  2746.   DATO$="Nome:"+Chr$(10)
  2747.   Poke$ INDIRIZZO,DATO$
  2748.   Add INDIRIZZO,Len(DATO$)
  2749.   DATO$=NOMER$(A)+Chr$(10)
  2750.   Poke$ INDIRIZZO,DATO$
  2751.   Add INDIRIZZO,Len(DATO$)
  2752.  Next A
  2753.  DATO$="Giornata:"+Chr$(10)
  2754.  Poke$ INDIRIZZO,DATO$
  2755.  Add INDIRIZZO,Len(DATO$)
  2756.  DATO$=Str$(CONDIZIONEG)-" "+Chr$(10)
  2757.  Poke$ INDIRIZZO,DATO$
  2758.  Add INDIRIZZO,Len(DATO$)
  2759.  DATO$="Tempo trascorso:"+Chr$(10)
  2760.  Poke$ INDIRIZZO,DATO$
  2761.  Add INDIRIZZO,Len(DATO$)
  2762.  DATO$=Str$(TEMP0TRASCORSODASALVARE)-" "+Chr$(10)
  2763.  Poke$ INDIRIZZO,DATO$
  2764.  Add INDIRIZZO,Len(DATO$)
  2765.  If INDIRIZZO>Start(BANCO)+Length(BANCO)
  2766.   Proc TIC["Aumentare la dimensione del banco di"+Str$(INDIRIZZO-Start(BANCO)-Length(BANCO))+" Byte",ULTIMALINEA]
  2767.   Proc _ASPETTA
  2768.   SENZAMEMORIA=True
  2769.  Else 
  2770.   Bank Shrink BANCO To INDIRIZZO-Start(BANCO)
  2771.  End If 
  2772. Else 
  2773.  Proc TIC["Sto calcolando la lunghezza del banco dei dati...",ULTIMALINEA]
  2774.  INDIRIZZO=21
  2775.  Print At(0,0);"Lunghezza banco>";Str$(INDIRIZZO)-" ";" Byte"
  2776.  DATO$="Nemici attivi o no:"+Chr$(10)
  2777.  Add INDIRIZZO,Len(DATO$)
  2778.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2779.  DATO$=Str$(ANEMICI)-" "+Chr$(10)
  2780.  Add INDIRIZZO,Len(DATO$)
  2781.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2782.  DATO$="Numero delle categorie degli oggetti:"+Chr$(10)
  2783.  Add INDIRIZZO,Len(DATO$)
  2784.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2785.  DATO$=Str$(NUMEROCO)-" "+Chr$(10)
  2786.  Add INDIRIZZO,Len(DATO$)
  2787.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2788.  For A=0 To NUMEROCO
  2789.   DATO$="Categoria"+Str$(A)+">"+Chr$(10)
  2790.   Add INDIRIZZO,Len(DATO$)
  2791.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2792.   DATO$="Nome singolare:"+Chr$(10)
  2793.   Add INDIRIZZO,Len(DATO$)
  2794.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2795.   DATO$=NOMESCO$(A)+Chr$(10)
  2796.   Add INDIRIZZO,Len(DATO$)
  2797.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2798.   DATO$="Nome plurale:"+Chr$(10)
  2799.   Add INDIRIZZO,Len(DATO$)
  2800.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2801.   DATO$=NOMEPCO$(A)+Chr$(10)
  2802.   Add INDIRIZZO,Len(DATO$)
  2803.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2804.   DATO$="Nome singolare resto:"+Chr$(10)
  2805.   Add INDIRIZZO,Len(DATO$)
  2806.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2807.   DATO$=NOMESRO$(A)+Chr$(10)
  2808.   Add INDIRIZZO,Len(DATO$)
  2809.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2810.   DATO$="Nome plurale resto:"+Chr$(10)
  2811.   Add INDIRIZZO,Len(DATO$)
  2812.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2813.   DATO$=NOMEPRO$(A)+Chr$(10)
  2814.   Add INDIRIZZO,Len(DATO$)
  2815.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2816.   DATO$="Peso:"+Chr$(10)
  2817.   Add INDIRIZZO,Len(DATO$)
  2818.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2819.   DATO$=Str$(PESOCO(A))-" "+Chr$(10)
  2820.   Add INDIRIZZO,Len(DATO$)
  2821.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2822.   DATO$="Peso resto:"+Chr$(10)
  2823.   Add INDIRIZZO,Len(DATO$)
  2824.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2825.   DATO$=Str$(PESORESTOCO(A))-" "+Chr$(10)
  2826.   Add INDIRIZZO,Len(DATO$)
  2827.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2828.   DATO$="Tipo:"+Chr$(10)
  2829.   Add INDIRIZZO,Len(DATO$)
  2830.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2831.   DATO$=Str$(TIPOCO(A))-" "+Chr$(10)
  2832.   Add INDIRIZZO,Len(DATO$)
  2833.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2834.   DATO$="Parametro tipo:"+Chr$(10)
  2835.   Add INDIRIZZO,Len(DATO$)
  2836.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2837.   DATO$=Str$(PARATIPOCO(A))-" "+Chr$(10)
  2838.   Add INDIRIZZO,Len(DATO$)
  2839.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2840.   DATO$="Descrizione:"+Chr$(10)
  2841.   Add INDIRIZZO,Len(DATO$)
  2842.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2843.   DATO$=DESCRIZIONECO$(A)+"|"
  2844.   Add INDIRIZZO,Len(DATO$)
  2845.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2846.   DATO$="Oggetto del personaggio zero:"+Chr$(10)
  2847.   Add INDIRIZZO,Len(DATO$)
  2848.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2849.   DATO$=Str$(OGGETTIDELPERSONAGGIO0(A))-" "+Chr$(10)
  2850.   Add INDIRIZZO,Len(DATO$)
  2851.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2852.   DATO$="Resto del personaggio zero:"+Chr$(10)
  2853.   Add INDIRIZZO,Len(DATO$)
  2854.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2855.   DATO$=Str$(RESTIDELPERSONAGGIO0(A))-" "+Chr$(10)
  2856.   Add INDIRIZZO,Len(DATO$)
  2857.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2858.   DATO$="Oggetto dato:"+Chr$(10)
  2859.   Add INDIRIZZO,Len(DATO$)
  2860.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2861.   DATO$=Str$(OGGETTIDATIOLASCIATI(A))-" "+Chr$(10)
  2862.   Add INDIRIZZO,Len(DATO$)
  2863.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2864.  Next A
  2865.  DATO$="Numero degli edifici:"+Chr$(10)
  2866.  Add INDIRIZZO,Len(DATO$)
  2867.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2868.  DATO$=Str$(NUMEROE)-" "+Chr$(10)
  2869.  Add INDIRIZZO,Len(DATO$)
  2870.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2871.  If NUMERO>-1
  2872.   For A=0 To NUMEROE
  2873.    DATO$="Edificio"+Str$(A)+">"+Chr$(10)
  2874.    Add INDIRIZZO,Len(DATO$)
  2875.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2876.    DATO$="Nome:"+Chr$(10)
  2877.    Add INDIRIZZO,Len(DATO$)
  2878.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2879.    DATO$=NOMEE$(A)+Chr$(10)
  2880.    Add INDIRIZZO,Len(DATO$)
  2881.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2882.    DATO$="Descrizione:"+Chr$(10)
  2883.    Add INDIRIZZO,Len(DATO$)
  2884.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2885.    DATO$=DESCRIZIONEE$(A)+"|"
  2886.    Add INDIRIZZO,Len(DATO$)
  2887.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2888.    DATO$="Numero delle stanze:"+Chr$(10)
  2889.    Add INDIRIZZO,Len(DATO$)
  2890.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2891.    DATO$=Str$(NUMEROS(A))-" "+Chr$(10)
  2892.    Add INDIRIZZO,Len(DATO$)
  2893.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2894.    For B=0 To NUMEROS(A)
  2895.     DATO$="Stanza"+Str$(A)+">"+Chr$(10)
  2896.     Add INDIRIZZO,Len(DATO$)
  2897.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2898.     DATO$="Nome:"+Chr$(10)
  2899.     Add INDIRIZZO,Len(DATO$)
  2900.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2901.     DATO$=NOMES$(B,A)+Chr$(10)
  2902.     Add INDIRIZZO,Len(DATO$)
  2903.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2904.     DATO$="Luogo a Nord:"+Chr$(10)
  2905.     Add INDIRIZZO,Len(DATO$)
  2906.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2907.     DATO$=Str$(DREZIONES(0,B,A))-" "+Chr$(10)
  2908.     Add INDIRIZZO,Len(DATO$)
  2909.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2910.     DATO$="Luogo a NordEst:"+Chr$(10)
  2911.     Add INDIRIZZO,Len(DATO$)
  2912.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2913.     DATO$=Str$(DREZIONES(1,B,A))-" "+Chr$(10)
  2914.     Add INDIRIZZO,Len(DATO$)
  2915.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2916.     DATO$="Luogo a Est:"+Chr$(10)
  2917.     Add INDIRIZZO,Len(DATO$)
  2918.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2919.     DATO$=Str$(DREZIONES(2,B,A))-" "+Chr$(10)
  2920.     Add INDIRIZZO,Len(DATO$)
  2921.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2922.     DATO$="Luogo a SudEst:"+Chr$(10)
  2923.     Add INDIRIZZO,Len(DATO$)
  2924.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2925.     DATO$=Str$(DREZIONES(3,B,A))-" "+Chr$(10)
  2926.     Add INDIRIZZO,Len(DATO$)
  2927.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2928.     DATO$="Luogo a Sud:"+Chr$(10)
  2929.     Add INDIRIZZO,Len(DATO$)
  2930.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2931.     DATO$=Str$(DREZIONES(4,B,A))-" "+Chr$(10)
  2932.     Add INDIRIZZO,Len(DATO$)
  2933.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2934.     DATO$="Luogo a SudOvest:"+Chr$(10)
  2935.     Add INDIRIZZO,Len(DATO$)
  2936.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2937.     DATO$=Str$(DREZIONES(5,B,A))-" "+Chr$(10)
  2938.     Add INDIRIZZO,Len(DATO$)
  2939.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2940.     DATO$="Luogo a Ovest:"+Chr$(10)
  2941.     Add INDIRIZZO,Len(DATO$)
  2942.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2943.     DATO$=Str$(DREZIONES(6,B,A))-" "+Chr$(10)
  2944.     Add INDIRIZZO,Len(DATO$)
  2945.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2946.     DATO$="Luogo a NordOvest:"+Chr$(10)
  2947.     Add INDIRIZZO,Len(DATO$)
  2948.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2949.     DATO$=Str$(DREZIONES(7,B,A))-" "+Chr$(10)
  2950.     Add INDIRIZZO,Len(DATO$)
  2951.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2952.     DATO$="Luogo Sopra:"+Chr$(10)
  2953.     Add INDIRIZZO,Len(DATO$)
  2954.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2955.     DATO$=Str$(DREZIONES(8,B,A))-" "+Chr$(10)
  2956.     Add INDIRIZZO,Len(DATO$)
  2957.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2958.     DATO$="Luogo Sotto:"+Chr$(10)
  2959.     Add INDIRIZZO,Len(DATO$)
  2960.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2961.     DATO$=Str$(DREZIONES(9,B,A))-" "+Chr$(10)
  2962.     Add INDIRIZZO,Len(DATO$)
  2963.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2964.     DATO$="Soldi:"+Chr$(10)
  2965.     Add INDIRIZZO,Len(DATO$)
  2966.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2967.     DATO$=Str$(SOLDIS(B,A))-" "+Chr$(10)
  2968.     Add INDIRIZZO,Len(DATO$)
  2969.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2970.     DATO$="Descrizione:"+Chr$(10)
  2971.     Add INDIRIZZO,Len(DATO$)
  2972.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2973.     DATO$=DESCRIZIONES$(B,A)+"|"
  2974.     Add INDIRIZZO,Len(DATO$)
  2975.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2976.    Next B
  2977.   Next A
  2978.  End If 
  2979.  DATO$="Numero dei luoghi:"+Chr$(10)
  2980.  Add INDIRIZZO,Len(DATO$)
  2981.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2982.  DATO$=Str$(NUMEROL)-" "+Chr$(10)
  2983.  Add INDIRIZZO,Len(DATO$)
  2984.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2985.  For A=0 To NUMEROL
  2986.   DATO$="Luogo"+Str$(A)+">"+Chr$(10)
  2987.   Add INDIRIZZO,Len(DATO$)
  2988.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2989.   DATO$="Nome:"+Chr$(10)
  2990.   Add INDIRIZZO,Len(DATO$)
  2991.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2992.   DATO$=NOMEL$(A)+Chr$(10)
  2993.   Add INDIRIZZO,Len(DATO$)
  2994.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2995.   DATO$="Luogo a Nord:"+Chr$(10)
  2996.   Add INDIRIZZO,Len(DATO$)
  2997.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2998.   DATO$=Str$(DREZIONEL(0,A))-" "+Chr$(10)
  2999.   Add INDIRIZZO,Len(DATO$)
  3000.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3001.   DATO$="Luogo a NordEst:"+Chr$(10)
  3002.   Add INDIRIZZO,Len(DATO$)
  3003.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3004.   DATO$=Str$(DREZIONEL(1,A))-" "+Chr$(10)
  3005.   Add INDIRIZZO,Len(DATO$)
  3006.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3007.   DATO$="Luogo a Est:"+Chr$(10)
  3008.   Add INDIRIZZO,Len(DATO$)
  3009.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3010.   DATO$=Str$(DREZIONEL(2,A))-" "+Chr$(10)
  3011.   Add INDIRIZZO,Len(DATO$)
  3012.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3013.   DATO$="Luogo a SudEst:"+Chr$(10)
  3014.   Add INDIRIZZO,Len(DATO$)
  3015.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3016.   DATO$=Str$(DREZIONEL(3,A))-" "+Chr$(10)
  3017.   Add INDIRIZZO,Len(DATO$)
  3018.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3019.   DATO$="Luogo a Sud:"+Chr$(10)
  3020.   Add INDIRIZZO,Len(DATO$)
  3021.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3022.   DATO$=Str$(DREZIONEL(4,A))-" "+Chr$(10)
  3023.   Add INDIRIZZO,Len(DATO$)
  3024.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3025.   DATO$="Luogo a SudOvest:"+Chr$(10)
  3026.   Add INDIRIZZO,Len(DATO$)
  3027.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3028.   DATO$=Str$(DREZIONEL(5,A))-" "+Chr$(10)
  3029.   Add INDIRIZZO,Len(DATO$)
  3030.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3031.   DATO$="Luogo a Ovest:"+Chr$(10)
  3032.   Add INDIRIZZO,Len(DATO$)
  3033.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3034.   DATO$=Str$(DREZIONEL(6,A))-" "+Chr$(10)
  3035.   Add INDIRIZZO,Len(DATO$)
  3036.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3037.   DATO$="Luogo a NordOvest:"+Chr$(10)
  3038.   Add INDIRIZZO,Len(DATO$)
  3039.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3040.   DATO$=Str$(DREZIONEL(7,A))-" "+Chr$(10)
  3041.   Add INDIRIZZO,Len(DATO$)
  3042.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3043.   DATO$="Luogo Sopra:"+Chr$(10)
  3044.   Add INDIRIZZO,Len(DATO$)
  3045.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3046.   DATO$=Str$(DREZIONEL(8,A))-" "+Chr$(10)
  3047.   Add INDIRIZZO,Len(DATO$)
  3048.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3049.   DATO$="Luogo Sotto:"+Chr$(10)
  3050.   Add INDIRIZZO,Len(DATO$)
  3051.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3052.   DATO$=Str$(DREZIONEL(9,A))-" "+Chr$(10)
  3053.   Add INDIRIZZO,Len(DATO$)
  3054.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3055.   DATO$="Soldi:"+Chr$(10)
  3056.   Add INDIRIZZO,Len(DATO$)
  3057.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3058.   DATO$=Str$(SOLDIL(A))-" "+Chr$(10)
  3059.   Add INDIRIZZO,Len(DATO$)
  3060.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3061.   DATO$="Regione:"+Chr$(10)
  3062.   Add INDIRIZZO,Len(DATO$)
  3063.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3064.   DATO$=Str$(REGIONEL(A))-" "+Chr$(10)
  3065.   Add INDIRIZZO,Len(DATO$)
  3066.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3067.   DATO$="Tipo di luogo:"+Chr$(10)
  3068.   Add INDIRIZZO,Len(DATO$)
  3069.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3070.   DATO$=Str$(TIPOL(A))-" "+Chr$(10)
  3071.   Add INDIRIZZO,Len(DATO$)
  3072.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3073.   DATO$="Descrizione:"+Chr$(10)
  3074.   Add INDIRIZZO,Len(DATO$)
  3075.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3076.   DATO$=DESCRIZIONEL$(A)+"|"
  3077.   Add INDIRIZZO,Len(DATO$)
  3078.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3079.  Next A
  3080.  DATO$="Numero degli oggetti:"+Chr$(10)
  3081.  Add INDIRIZZO,Len(DATO$)
  3082.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3083.  DATO$=Str$(NUMEROO)-" "+Chr$(10)
  3084.  Add INDIRIZZO,Len(DATO$)
  3085.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3086.  For A=0 To NUMEROO
  3087.   DATO$="Oggetto"+Str$(A)+">"+Chr$(10)
  3088.   Add INDIRIZZO,Len(DATO$)
  3089.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3090.   DATO$="Categoria:"+Chr$(10)
  3091.   Add INDIRIZZO,Len(DATO$)
  3092.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3093.   DATO$=Str$(CATEGORIAO(A))-" "+Chr$(10)
  3094.   Add INDIRIZZO,Len(DATO$)
  3095.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3096.   DATO$="Posizione:"+Chr$(10)
  3097.   Add INDIRIZZO,Len(DATO$)
  3098.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3099.   DATO$=Str$(POSIZIONEO(A))-" "+Chr$(10)
  3100.   Add INDIRIZZO,Len(DATO$)
  3101.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3102.   DATO$="Tipo:"+Chr$(10)
  3103.   Add INDIRIZZO,Len(DATO$)
  3104.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3105.   DATO$=Str$(TIPOO(A))-" "+Chr$(10)
  3106.   Add INDIRIZZO,Len(DATO$)
  3107.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3108.  Next A
  3109.  DATO$="Numero dei personaggi:"+Chr$(10)
  3110.  Add INDIRIZZO,Len(DATO$)
  3111.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3112.  DATO$=Str$(NUMEROP)-" "+Chr$(10)
  3113.  Add INDIRIZZO,Len(DATO$)
  3114.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3115.  For A=0 To NUMEROP
  3116.   DATO$="Personaggio"+Str$(A)+">"+Chr$(10)
  3117.   Add INDIRIZZO,Len(DATO$)
  3118.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3119.   DATO$="Nome:"+Chr$(10)
  3120.   Add INDIRIZZO,Len(DATO$)
  3121.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3122.   DATO$=NOMEP$(A)+Chr$(10)
  3123.   Add INDIRIZZO,Len(DATO$)
  3124.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3125.   DATO$="Posizione:"+Chr$(10)
  3126.   Add INDIRIZZO,Len(DATO$)
  3127.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3128.   DATO$=Str$(POSIZIONEP(A))-" "+Chr$(10)
  3129.   Add INDIRIZZO,Len(DATO$)
  3130.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3131.   DATO$="Costituzione:"+Chr$(10)
  3132.   Add INDIRIZZO,Len(DATO$)
  3133.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3134.   DATO$=Str$(C0STITUZIONEP(A))-" "+Chr$(10)
  3135.   Add INDIRIZZO,Len(DATO$)
  3136.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3137.   DATO$="Destrezza:"+Chr$(10)
  3138.   Add INDIRIZZO,Len(DATO$)
  3139.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3140.   DATO$=Str$(DESTREZZAP(A))-" "+Chr$(10)
  3141.   Add INDIRIZZO,Len(DATO$)
  3142.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3143.   DATO$="Forza:"+Chr$(10)
  3144.   Add INDIRIZZO,Len(DATO$)
  3145.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3146.   DATO$=Str$(F0RZAP(A))-" "+Chr$(10)
  3147.   Add INDIRIZZO,Len(DATO$)
  3148.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3149.   DATO$="Peso:"+Chr$(10)
  3150.   Add INDIRIZZO,Len(DATO$)
  3151.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3152.   DATO$=Str$(PESOP(A))-" "+Chr$(10)
  3153.   Add INDIRIZZO,Len(DATO$)
  3154.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3155.   DATO$="Peso netto:"+Chr$(10)
  3156.   Add INDIRIZZO,Len(DATO$)
  3157.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3158.   DATO$=Str$(PESONETTOP(A))-" "+Chr$(10)
  3159.   Add INDIRIZZO,Len(DATO$)
  3160.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3161.   DATO$="Resistenza:"+Chr$(10)
  3162.   Add INDIRIZZO,Len(DATO$)
  3163.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3164.   DATO$=Str$(RESISTENZAP(A))-" "+Chr$(10)
  3165.   Add INDIRIZZO,Len(DATO$)
  3166.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3167.   DATO$="Soldi:"+Chr$(10)
  3168.   Add INDIRIZZO,Len(DATO$)
  3169.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3170.   DATO$=Str$(SOLDIP(A))-" "+Chr$(10)
  3171.   Add INDIRIZZO,Len(DATO$)
  3172.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3173.   DATO$="Tipo:"+Chr$(10)
  3174.   Add INDIRIZZO,Len(DATO$)
  3175.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3176.   DATO$=Str$(TIPOP(A))-" "+Chr$(10)
  3177.   Add INDIRIZZO,Len(DATO$)
  3178.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3179.   DATO$="Descrizione:"+Chr$(10)
  3180.   Add INDIRIZZO,Len(DATO$)
  3181.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3182.   DATO$=DESCRIZIONEP$(A)+"|"
  3183.   Add INDIRIZZO,Len(DATO$)
  3184.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3185.   DATO$="Inizio sonno:"+Chr$(10)
  3186.   Add INDIRIZZO,Len(DATO$)
  3187.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3188.   DATO$=Str$(INIZIOSONNOP(A))-" "+Chr$(10)
  3189.   Add INDIRIZZO,Len(DATO$)
  3190.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3191.   DATO$="Durata sonno:"+Chr$(10)
  3192.   Add INDIRIZZO,Len(DATO$)
  3193.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3194.   DATO$=Str$(SONNOP(A))-" "+Chr$(10)
  3195.   Add INDIRIZZO,Len(DATO$)
  3196.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3197.   DATO$="Direzione presa:"+Chr$(10)
  3198.   Add INDIRIZZO,Len(DATO$)
  3199.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3200.   DATO$=Str$(DREZIONEPRESAP(A))-" "+Chr$(10)
  3201.   Add INDIRIZZO,Len(DATO$)
  3202.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3203.   DATO$="Luogo di destinazione:"+Chr$(10)
  3204.   Add INDIRIZZO,Len(DATO$)
  3205.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3206.   DATO$=Str$(LUOGODIDESTINAZIONEP(A))-" "+Chr$(10)
  3207.   Add INDIRIZZO,Len(DATO$)
  3208.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3209.   DATO$="Tempo di attraversamento:"+Chr$(10)
  3210.   Add INDIRIZZO,Len(DATO$)
  3211.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3212.   DATO$=Str$(TEMP0DIATTRAVERSAMENTOP(A))-" "+Chr$(10)
  3213.   Add INDIRIZZO,Len(DATO$)
  3214.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3215.   DATO$="Soldi ricevuti:"+Chr$(10)
  3216.   Add INDIRIZZO,Len(DATO$)
  3217.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3218.   DATO$=Str$(SOLDIRICEVUTIP(A))-" "+Chr$(10)
  3219.   Add INDIRIZZO,Len(DATO$)
  3220.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3221.   For B=0 To 7
  3222.    DATO$="Azione"+Str$(B)+">"+Chr$(10)
  3223.    Add INDIRIZZO,Len(DATO$)
  3224.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3225.    DATO$=Str$(AZIONEP(B,A))-" "+Chr$(10)
  3226.    Add INDIRIZZO,Len(DATO$)
  3227.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3228.    DATO$="Parametro A azione"+Str$(B)+":"+Chr$(10)
  3229.    Add INDIRIZZO,Len(DATO$)
  3230.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3231.    DATO$=Str$(PARAAAZIONEP(B,A))-" "+Chr$(10)
  3232.    Add INDIRIZZO,Len(DATO$)
  3233.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3234.    DATO$="Parametro B azione"+Str$(B)+":"+Chr$(10)
  3235.    Add INDIRIZZO,Len(DATO$)
  3236.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3237.    DATO$=Str$(PARABAZIONEP(B,A))-" "+Chr$(10)
  3238.    Add INDIRIZZO,Len(DATO$)
  3239.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3240.    DATO$="Parametro C azione"+Str$(B)+":"+Chr$(10)
  3241.    Add INDIRIZZO,Len(DATO$)
  3242.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3243.    DATO$=Str$(PARACAZIONEP(B,A))-" "+Chr$(10)
  3244.    Add INDIRIZZO,Len(DATO$)
  3245.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3246.   Next B
  3247.   DATO$="Posizione azione:"+Chr$(10)
  3248.   Add INDIRIZZO,Len(DATO$)
  3249.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3250.   DATO$=Str$(POSIZIONEA(A))-" "+Chr$(10)
  3251.   Add INDIRIZZO,Len(DATO$)
  3252.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3253.  Next A
  3254.  DATO$="Numero delle regioni:"+Chr$(10)
  3255.  Add INDIRIZZO,Len(DATO$)
  3256.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3257.  DATO$=Str$(NUMEROR)-" "+Chr$(10)
  3258.  Add INDIRIZZO,Len(DATO$)
  3259.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3260.  For A=0 To NUMEROR
  3261.   DATO$="Regione"+Str$(A)+">"+Chr$(10)
  3262.   Add INDIRIZZO,Len(DATO$)
  3263.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3264.   DATO$="Nome:"+Chr$(10)
  3265.   Add INDIRIZZO,Len(DATO$)
  3266.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3267.   DATO$=NOMER$(A)+Chr$(10)
  3268.   Add INDIRIZZO,Len(DATO$)
  3269.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3270.  Next A
  3271.  DATO$="Giornata:"+Chr$(10)
  3272.  Add INDIRIZZO,Len(DATO$)
  3273.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3274.  DATO$=Str$(CONDIZIONEG)-" "+Chr$(10)
  3275.  Add INDIRIZZO,Len(DATO$)
  3276.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3277.  DATO$="Tempo trascorso:"+Chr$(10)
  3278.  Add INDIRIZZO,Len(DATO$)
  3279.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3280.  DATO$=Str$(TEMP0TRASCORSODASALVARE)-" "+Chr$(10)
  3281.  Add INDIRIZZO,Len(DATO$)
  3282.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3283.  MEMORIA=Max(Chip Free,Fast Free)
  3284.  If INDIRIZZO>MEMORIA
  3285.   Proc TIC["Mancano"+Str$(INDIRIZZO-MEMORIA)+" Byte",ULTIMALINEA]
  3286.   Proc _ASPETTA
  3287.   SENZAMEMORIA=True
  3288.  Else 
  3289.   LUNGHEZZABANCO=INDIRIZZO
  3290.   SENZAMEMORIA=False
  3291.  End If 
  3292. End If 
  3293. End Proc
  3294. Procedure D0RMI
  3295. COMPIUTAAZIONE=Rnd(120)+420
  3296. Bset 2,TIPOP(0)
  3297. Print At(0,ULTIMALINEA);"Hai deciso di dormire";
  3298. Proc _ASPETTA
  3299. End Proc
  3300. Procedure EDIFICI
  3301. If NUMEROE>-1
  3302.  For A=0 To NUMEROE
  3303.   If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3304.    EDIFICIVISIBILI=True
  3305.   End If 
  3306.  Next A
  3307. Else 
  3308.  EDIFICIVISIBILI=False
  3309. End If 
  3310. If EDIFICIVISIBILI=True
  3311.  Print "Edifici visibili>"
  3312.  Proc FONDOSCHERMOGIOCO
  3313.  For A=0 To NUMEROE
  3314.   If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3315.    Print NOMEE$(A)
  3316.   End If 
  3317.  Proc FONDOSCHERMOGIOCO
  3318.  Next A
  3319. Else 
  3320.  Print "Nessun edificio visibile"
  3321. End If 
  3322. End Proc
  3323. Procedure EDIFICIOESTANZA
  3324. E=POSIZIONEP(0)/$10000
  3325. Print "Edificio>";NOMEE$(E)
  3326. S=POSIZIONEP(0) mod $10000
  3327. Print "Stanza>";NOMES$(S,E)
  3328. Print "Direzioni visibili>";
  3329. For A=0 To 9
  3330.  DREZIONE=DREZIONES(A,S,E) mod $10000
  3331.  If DREZIONE<$FFFF Then Print DREZIONEL$(A);" ";
  3332. Next A
  3333. Print 
  3334. End Proc
  3335. Procedure ESAMINA
  3336. For A=1 To NUMEROP
  3337.  If PERSONAGGIOVISIBILEP(A)=True Then OGGETTIEPERSONAGGIDAESAMINARE=True
  3338.  If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  3339.   OGGETTIEPERSONAGGIDAESAMINARE=True
  3340.  End If 
  3341. Next A
  3342. If TEMP0DIATTRAVERSAMENTOP(0)=0
  3343.  For A=0 To NUMEROO
  3344.   If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False
  3345.    OGGETTIEPERSONAGGIDAESAMINARE=True
  3346.   End If 
  3347.  Next A
  3348. End If 
  3349. For A=0 To NUMEROO
  3350.  If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(3,TIPOO(A))=False
  3351.   OGGETTIEPERSONAGGIDAESAMINARE=True
  3352.  End If 
  3353. Next A
  3354. If OGGETTIEPERSONAGGIDAESAMINARE=True
  3355.  Cls 
  3356.  Print "Personaggi ed oggetti esaminabili>"
  3357.  For A=1 To NUMEROP
  3358.   If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  3359.    If RESISTENZAP(A)=0
  3360.     Print "Il cadavere di ",NOMEP$(A)
  3361.    Else 
  3362.     Print NOMEP$(A)
  3363.    End If 
  3364.    Proc FONDOSCHERMOGIOCO
  3365.   End If 
  3366.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  3367.   If RESISTENZAP(A)=0
  3368.     Print "Il cadavere di ";NOMEP$(A);" (che stai trasportando)"
  3369.    Else 
  3370.     Print NOMEP$(A);" (che stai trasportando)"
  3371.    End If 
  3372.    Proc FONDOSCHERMOGIOCO
  3373.   End If 
  3374.  Next A
  3375.  For A=0 To NUMEROO
  3376.   If POSIZIONEO(A)=POSIZIONEP(0)
  3377.    If Btst(3,TIPOO(A))=False
  3378.     Print Str$(A+1)-" ";">";
  3379.     If Btst(1,TIPOO(A))=True
  3380.      Print NOMESRO$(CATEGORIAO(A))
  3381.     Else 
  3382.      Print NOMESCO$(CATEGORIAO(A))
  3383.     End If 
  3384.     Proc FONDOSCHERMOGIOCO
  3385.    End If 
  3386.   Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  3387.    Print Str$(A+1)-" ";">";
  3388.    If Btst(1,TIPOO(A))=True
  3389.     Print NOMESRO$(CATEGORIAO(A));
  3390.    Else 
  3391.     Print NOMESCO$(CATEGORIAO(A));
  3392.    End If 
  3393.    Print " (che stai trasportando)"
  3394.    Proc FONDOSCHERMOGIOCO
  3395.   End If 
  3396.  Next A
  3397.  Print At(0,ULTIMALINEA-1);"Chi o che cosa vuoi esaminare ?>" : Locate 0,ULTIMALINEA
  3398.  Input "Numero=Oggetto/Nome=Personaggio>";NUMEROOGGETTOONOMEPERSONAGGIO$;
  3399.  Curs Off 
  3400.  If NUMEROOGGETTOONOMEPERSONAGGIO$<>""
  3401.   If Val(NUMEROOGGETTOONOMEPERSONAGGIO$)=0
  3402.    If NUMEROOGGETTOONOMEPERSONAGGIO$="0"
  3403.     Pop Proc
  3404.    End If 
  3405.    For A=1 To NUMEROP
  3406.     If Lower$(NUMEROOGGETTOONOMEPERSONAGGIO$)=Lower$(NOMEP$(A))
  3407.      Exit 
  3408.     End If 
  3409.    Next A
  3410.    If A=NUMEROP+1
  3411.     Print At(0,ULTIMALINEA);"Non c'� nessun ";NUMEROOGGETTOONOMEPERSONAGGIO$;" da esaminare    ";
  3412.     If _MUSICA=False
  3413.      Bell 1
  3414.     End If 
  3415.     Proc _ASPETTA
  3416.    Else 
  3417.     COMPIUTAAZIONE=1
  3418.     Cls 
  3419.     If RESISTENZAP(A)=0
  3420.      Print NOMEP$(A);" era un";
  3421.      If Btst(1,TIPOP(A))=True
  3422.       Print "a femmina"
  3423.      Else 
  3424.       Print " maschio"
  3425.      End If 
  3426.     Else 
  3427.      Print NOMEP$(A);" ï¿½ un";
  3428.      If Btst(1,TIPOP(A))=True
  3429.       Print "a femmina"
  3430.      Else 
  3431.       Print " maschio"
  3432.      End If 
  3433.      If Btst(2,TIPOP(A))=True
  3434.      Print NOMEP$(A);" sta dormendo"
  3435.      End If 
  3436.      For B=0 To NUMEROO
  3437.       If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=True and Btst(3,TIPOO(B))=False
  3438.        OGGETTIDAMOSTRARE=True
  3439.       End If 
  3440.      Next B
  3441.      If SOLDIP(A)>0
  3442.       OGGETTIDAMOSTRARE=True
  3443.      End If 
  3444.      If OGGETTIDAMOSTRARE=True
  3445.       For B=0 To NUMEROCO
  3446.        OGGETTIDIA(B)=0
  3447.        RESTIDIA(B)=0
  3448.       Next B
  3449.       For B=0 To NUMEROO
  3450.        If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=True and Btst(3,TIPOO(B))=False
  3451.         If Btst(1,TIPOO(B))=True
  3452.          Inc RESTIDIA(CATEGORIAO(B))
  3453.         Else 
  3454.          Inc OGGETTIDIA(CATEGORIAO(B))
  3455.         End If 
  3456.        End If 
  3457.       Next B
  3458.       Print "Inventario oggetti di ";NOMEP$(A);">"
  3459.       For B=0 To NUMEROCO
  3460.        If OGGETTIDIA(B)>0
  3461.         Print Str$(OGGETTIDIA(B))-" ";" ";
  3462.         If OGGETTIDIA(B)=1
  3463.          Print NOMESCO$(B)
  3464.         Else 
  3465.          Print NOMEPCO$(B)
  3466.         End If 
  3467.        End If 
  3468.        If RESTIDIA(B)>0
  3469.         Print Str$(RESTIDIA(B))-" ";" ";
  3470.         If RESTIDIA(B)=1
  3471.          Print NOMESRO$(B)
  3472.         Else 
  3473.          Print NOMEPRO$(B)
  3474.         End If 
  3475.        End If 
  3476.       Next B
  3477.       If SOLDIP(B)>0
  3478.        Print Str$(SOLDIP(B))-" ";" ";
  3479.        If SOLDIP(B)=1
  3480.         Print "soldo"
  3481.        Else 
  3482.         Print "soldi"
  3483.        End If 
  3484.        Proc FONDOSCHERMOGIOCO
  3485.       End If 
  3486.       For B=0 To NUMEROO
  3487.        If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=True
  3488.         If Btst(2,TIPOCO(CATEGORIAO(B)))=True and Btst(2,TIPOO(B))=True
  3489.          Print NOMEP$(A);" indossa 1 ";NOMESCO$(CATEGORIAO(B))
  3490.          Exit 
  3491.         End If 
  3492.        End If 
  3493.       Next B
  3494.      Else 
  3495.       Print NOMEP$(A);" non ha nessun oggetto"
  3496.      End If 
  3497.     End If 
  3498.     Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  3499.    End If 
  3500.   Else 
  3501.    OGGETTODAESAMINARE=Val(NUMEROOGGETTOONOMEPERSONAGGIO$)
  3502.    For A=0 To NUMEROO
  3503.     If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False and A=OGGETTODAESAMINARE-1
  3504.      Exit 
  3505.     End If 
  3506.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(3,TIPOO(A))=False and A=OGGETTODAESAMINARE-1
  3507.      Exit 
  3508.     End If 
  3509.    Next A
  3510.    If A=NUMEROO+1
  3511.     Print At(0,ULTIMALINEA);"Non c'� nessun oggetto col numero";OGGETTODAESAMINARE;
  3512.     If _MUSICA=False
  3513.      Bell 1
  3514.     End If 
  3515.     Proc _ASPETTA
  3516.    Else 
  3517.     COMPIUTAAZIONE=1
  3518.     Cls 
  3519.     Print "Oggetto numero";OGGETTODAESAMINARE;">";
  3520.     If Btst(1,TIPOO(A))=True
  3521.      Print NOMESRO$(CATEGORIAO(A))
  3522.     Else 
  3523.      Print NOMESCO$(CATEGORIAO(A))
  3524.     End If 
  3525.     If Btst(0,TIPOCO(CATEGORIAO(A)))=True
  3526.      Print "� commestibile"
  3527.     End If 
  3528.     If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  3529.      Print "� un contenitore"
  3530.     End If 
  3531.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  3532.      Print "� difensivo"
  3533.     End If 
  3534.     If Btst(3,TIPOCO(CATEGORIAO(A)))=True
  3535.      Print "� leggibile"
  3536.     End If 
  3537.     If Btst(4,TIPOCO(CATEGORIAO(A)))=True
  3538.      Print "� liquido"
  3539.     Else 
  3540.      Print "� solido"
  3541.     End If 
  3542.     If Btst(5,TIPOCO(CATEGORIAO(A)))=True
  3543.      Print "� magico"
  3544.     End If 
  3545.     If Btst(6,TIPOCO(CATEGORIAO(A)))=True
  3546.      Print "� offensivo"
  3547.     End If 
  3548.     If Btst(7,TIPOCO(CATEGORIAO(A)))=True
  3549.      Print "� residente"
  3550.     End If 
  3551.     If Btst(8,TIPOCO(CATEGORIAO(A)))=True
  3552.      Print "� trasferibile"
  3553.     End If 
  3554.     If Btst(9,TIPOCO(CATEGORIAO(A)))=True
  3555.      Print "� trasparente"
  3556.     End If 
  3557.     If Btst(10,TIPOCO(CATEGORIAO(A)))=True
  3558.      Print "� vincolato"
  3559.     End If 
  3560.     If Btst(1,TIPOCO(CATEGORIAO(A)))=True and Btst(9,TIPOCO(CATEGORIAO(A)))=True
  3561.      For B=0 To NUMEROCO
  3562.       OGGETTIDIA(B)=0
  3563.       RESTIDIA(B)=0
  3564.      Next B
  3565.      For B=0 To NUMEROO
  3566.       If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False and Btst(3,TIPOO(B))=False
  3567.        OGGETTICONTENUTI=True
  3568.        If Btst(1,TIPOO(B))=True
  3569.         Inc RESTIDIA(CATEGORIAO(A))
  3570.        Else 
  3571.         Inc OGGETTIDIA(CATEGORIAO(A))
  3572.        End If 
  3573.       End If 
  3574.      Next B
  3575.      For B=1 To NUMEROP
  3576.       If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  3577.        PERSONAGGICONTENUTI=True
  3578.       End If 
  3579.      Next B
  3580.      If OGGETTICONTENUTI=True
  3581.       Print "oggetti contenuti>"
  3582.       Proc FONDOSCHERMOGIOCO
  3583.       For B=0 To NUMEROCO
  3584.        If OGGETTIDIA(B)>0
  3585.         Print Str$(OGGETTIDIA(B))-" ";" ";
  3586.         If OGGETTIDIA(B)=1
  3587.          Print NOMESCO$(B)
  3588.         Else 
  3589.          Print NOMEPCO$(B)
  3590.         End If 
  3591.         Proc FONDOSCHERMOGIOCO
  3592.        End If 
  3593.        If RESTIDIA(B)>0
  3594.         Print Str$(RESTIDIA(B))-" ";" ";
  3595.         If RESTIDIA(B)=1
  3596.          Print NOMESRO$(B)
  3597.         Else 
  3598.          Print NOMEPRO$(B)
  3599.         End If 
  3600.         Proc FONDOSCHERMOGIOCO
  3601.        End If 
  3602.       Next B
  3603.      Else 
  3604.       Print "non contiene nessun oggetto"
  3605.      End If 
  3606.      If PERSONAGGICONTENUTI=True
  3607.       Print "personaggi contenuti>"
  3608.       Proc FONDOSCHERMOGIOCO
  3609.       For B=1 To NUMEROP
  3610.        If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  3611.         Print NOMEP$(B)
  3612.         Proc FONDOSCHERMOGIOCO
  3613.        End If 
  3614.       Next B
  3615.      Else 
  3616.       Print "non contiene nessun personaggio"
  3617.      End If 
  3618.     End If 
  3619.     Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  3620.    End If 
  3621.   End If 
  3622.  End If 
  3623. Else 
  3624.  Print At(0,ULTIMALINEA);"Non ci sono oggetti e personaggi da esaminare";
  3625.  If _MUSICA=False
  3626.   Bell 1
  3627.  End If 
  3628. Proc _ASPETTA
  3629. End If 
  3630. End Proc
  3631. Procedure FAIDORMIREGLIALTRIPERSONAGGI[P]
  3632. M1NUTI=(TEMP0TRASCORSO+360) mod 1440-COMPIUTAAZIONE
  3633. If INIZIOSONNOP(P)=M1NUTI
  3634.  If PERSONAGGIOVISIBILEP(P)=True
  3635.   If Btst(2,TIPOP(P))=False
  3636.    Print NOMEP$(P);" si ï¿½ addormentat";
  3637.    If Btst(1,TIPOP(P))=True
  3638.     Print "a"
  3639.    Else 
  3640.     Print "o"
  3641.    End If 
  3642.   End If 
  3643.  End If 
  3644.  SONNOP(P)=Rnd(120)+420
  3645.  Bset 2,TIPOP(P)
  3646. End If 
  3647. End Proc
  3648. Procedure FASEDELGIORNO
  3649. Print "Fase del giorno>";
  3650. M1NUTI=(TEMP0TRASCORSO+360) mod 1440
  3651. If M1NUTI<360
  3652.  Print FASEG$(6)
  3653. Else If M1NUTI>359 and M1NUTI<420
  3654.  Print FASEG$(0)
  3655. Else If M1NUTI>419 and M1NUTI<540
  3656.  Print FASEG$(1)
  3657. Else If M1NUTI>539 and M1NUTI<780
  3658.  Print FASEG$(2)
  3659. Else If M1NUTI>779 and M1NUTI<1080
  3660.  Print FASEG$(3)
  3661. Else If M1NUTI>1079 and M1NUTI<1140
  3662.  Print FASEG$(4)
  3663. Else If M1NUTI>1139 and M1NUTI<1260
  3664.  Print FASEG$(5)
  3665. Else 
  3666.  Print FASEG$(6)
  3667. End If 
  3668. End Proc
  3669. Procedure FONDOSCHERMOEDITOR
  3670. If MESSAGGIO1$<>""
  3671.  If Y Curs=ULTIMALINEA-1
  3672.   Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  3673.   Proc TIC["premi un tasto",ULTIMALINEA]
  3674.   Wait Key 
  3675.   Cls 
  3676.  End If 
  3677. Else 
  3678.  If Y Curs=ULTIMALINEA
  3679.   Proc TIC["premi un tasto",ULTIMALINEA]
  3680.   Wait Key 
  3681.   Cls 
  3682.  End If 
  3683. End If 
  3684. End Proc
  3685. Procedure FONDOSCHERMOGIOCO
  3686. If Y Curs=ULTIMALINEA
  3687.  Proc TIC["premi un tasto",ULTIMALINEA]
  3688.  Wait Key 
  3689.  Cls 
  3690. End If 
  3691. End Proc
  3692. Procedure GIOCA
  3693. Fade 5,$66
  3694. Proc MOSTRAMESSAGGIO["Prologo",PROLOGO$]
  3695. Repeat 
  3696.  Proc CONTROLLASEILPERSONAGGIO0HARAGGIUNTOLOSCOPODELGIOCO
  3697.  If FINEA(7,0)=True
  3698.   Proc MOSTRAMESSAGGIO["****************************** Epilogo ******************************",EPILOGO$]
  3699.   Exit 
  3700.  End If 
  3701.  If COMPIUTAAZIONE>0
  3702.   Add TEMP0TRASCORSO,COMPIUTAAZIONE
  3703.  End If 
  3704.  PERSONAGGIO0SITROVADENTROUNEDIFICIO=POSIZIONEP(0)/$10000
  3705.  If ANEMICI=True and PERSONAGGIO0SITROVADENTROUNEDIFICIO=0
  3706.   AZIONI=COMPIUTAAZIONE
  3707.   While AZIONI>0
  3708.    NEMICI=Rnd(127-TEMP0TRASCORSO/1440)
  3709.    NEMICI=Max(NEMICI,0)
  3710.    If NEMICI=0
  3711.     If Btst(2,TIPOP(0))=True
  3712.      Bclr 2,TIPOP(0) : Add COMPIUTAAZIONE,-AZIONI : AZIONI=1 : INEMICITISVEGLIANO=True
  3713.      Proc NEMICI[0]
  3714.     Else 
  3715.      Proc NEMICI[0]
  3716.     End If 
  3717.    End If 
  3718.    Dec AZIONI
  3719.   Wend 
  3720.  End If 
  3721.  Cls 
  3722.  If RESISTENZAP(0)=0 Then Proc MORTE[0] : Exit 
  3723.  Proc TIC["Premi * per le informazioni",0] : Print 
  3724.  Print "Nome del personaggio>";NOMEP$(0)
  3725.  Proc TEMP0
  3726.  If PERSONAGGIO0SITROVADENTROUNEDIFICIO=0
  3727.   Proc FASEDELGIORNO
  3728.   Proc CONDIZIONEDELGIORNO
  3729.   If TEMP0DIATTRAVERSAMENTOP(0)=0
  3730.    Proc LUOGO
  3731.    Proc TIPODILUOGO
  3732.    Proc EDIFICI
  3733.    Proc PERSONAGGI
  3734.    Proc OGGETTI[True]
  3735.    Print String$("*",80);
  3736.    Proc AZIONIALTRIPERSONAGGI
  3737.    Proc OGGETTI[False]
  3738.    Bclr 2,TIPOP(0)
  3739.    Memorize X : Memorize Y 
  3740.    Print At(0,ULTIMALINEA);"Che cosa vuoi fare ?";
  3741.    SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  3742.    If SCELTA$="*" : Proc INFORMAZIONI : End If 
  3743.    If SCELTA$="a" : Proc LASCIAPASSAREILTEMPO : End If 
  3744.    If SCELTA$="c" : Proc CARATTERISTICHE : End If 
  3745.    If SCELTA$="d" : Proc DAI : End If 
  3746.    If SCELTA$="e" : Proc ESAMINA : End If 
  3747.    If SCELTA$="g" : Proc GUARDA : End If 
  3748.    If SCELTA$="i" : Proc INVENTARIO : End If 
  3749.    If SCELTA$="j" and _MUSICA=True : Proc SUONAUNMODULO[FILEREQUESTERMUSICA] : End If 
  3750.    If SCELTA$="l" : Proc LASCIA : End If 
  3751.    If SCELTA$="m" : Proc MUOVITI : End If 
  3752.    If SCELTA$="p" : Proc PRENDI : End If 
  3753.    If SCELTA$="t" : M0DOVISUALIZZAZIONETEMPO= Not M0DOVISUALIZZAZIONETEMPO : End If 
  3754.    If SCELTA$="u" : Proc USA : End If 
  3755.    If SCELTA$="z" : Proc D0RMI : End If 
  3756.   Else 
  3757.    Print NOMEP$(0);" sta andando ";
  3758.    If DREZIONEPRESAP(0)>7
  3759.     Print Lower$(DREZIONE$(DREZIONEPRESAP(0)));
  3760.    Else 
  3761.     Print "a ";Lower$(DREZIONE$(DREZIONEPRESAP(0)));
  3762.    End If 
  3763.    Print " da ";NOMEL$(POSIZIONEP(0))
  3764.    Proc TIPODILUOGO
  3765.    Proc TIPODILUOGODIDESTINAZIONE
  3766.    If TEMP0DIATTRAVERSAMENTOP(0)=1
  3767.     Print "Gli resta 1 minuto";
  3768.    Else 
  3769.     Print "Gli restano";TEMP0DIATTRAVERSAMENTOP(0);" minuti";
  3770.    End If 
  3771.    Print " di cammino..."
  3772.    Proc PERSONAGGI
  3773.    Print String$("*",80);
  3774.    Proc AZIONIALTRIPERSONAGGI
  3775.    Print At(0,ULTIMALINEA);"Che cosa vuoi fare ?";
  3776.    SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  3777.    If SCELTA$="*" : Proc INFORMAZIONI : End If 
  3778.    If SCELTA$="a" : Proc LASCIAPASSAREILTEMPO : End If 
  3779.    If SCELTA$="c" : Proc CARATTERISTICHE : End If 
  3780.    If SCELTA$="d" : Proc DAI : End If 
  3781.    If SCELTA$="i" : Proc INVENTARIO : End If 
  3782.    If SCELTA$="j" and _MUSICA=True : Proc SUONAUNMODULO[FILEREQUESTERMUSICA] : End If 
  3783.    If SCELTA$="l" : Proc LASCIA : End If 
  3784.    If SCELTA$="m" : Proc MUOVITI : MUOVITI=True : End If 
  3785.    If SCELTA$="p" : Proc PRENDI : End If 
  3786.    If SCELTA$="t" : M0DOVISUALIZZAZIONETEMPO= Not M0DOVISUALIZZAZIONETEMPO : End If 
  3787.    If SCELTA$="z" : Proc D0RMI : End If 
  3788.   End If 
  3789.  Else 
  3790.   Proc EDIFICIOESTANZA
  3791.   Proc PERSONAGGI
  3792.   Print String$("*",80);
  3793.   Proc AZIONIALTRIPERSONAGGI
  3794.   Print At(0,ULTIMALINEA);"Che cosa vuoi fare ?";
  3795.   SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  3796.   If SCELTA$="*" : Proc INFORMAZIONI : End If 
  3797.   If SCELTA$="a" : Proc LASCIAPASSAREILTEMPO : End If 
  3798.   If SCELTA$="c" : Proc CARATTERISTICHE : End If 
  3799.   If SCELTA$="d" : Proc DAI : End If 
  3800.   If SCELTA$="i" : Proc INVENTARIO : End If 
  3801.   If SCELTA$="j" and _MUSICA=True : Proc SUONAUNMODULO[FILEREQUESTERMUSICA] : End If 
  3802.   If SCELTA$="l" : Proc LASCIA : End If 
  3803.   If SCELTA$="m" : Proc MUOVITI : MUOVITI=True : End If 
  3804.   If SCELTA$="p" : Proc PRENDI : End If 
  3805.   If SCELTA$="t" : M0DOVISUALIZZAZIONETEMPO= Not M0DOVISUALIZZAZIONETEMPO : End If 
  3806.   If SCELTA$="z" : Proc D0RMI : End If 
  3807.  End If 
  3808.  Proc CONTROLLASEILPERSONAGGIO0HARAGGIUNTOLOSCOPODELGIOCO
  3809.  If FINEA(7,0)=True
  3810.   Proc MOSTRAMESSAGGIO["****************************** Epilogo ******************************",EPILOGO$]
  3811.   Exit 
  3812.  End If 
  3813. Until SCELTA$="x"
  3814. Fade 5,$60
  3815. End Proc
  3816. Procedure GUARDA
  3817. For A=0 To NUMEROCO
  3818.  If OGGETTINELLUOGO(A)>0 Then Add OGGETTIVISIBILI,OGGETTINELLUOGO(A)
  3819.  If RESTINELLUOGO(A)>0 Then Add OGGETTIVISIBILI,RESTINELLUOGO(A)
  3820.  If OGGETTIDELPERSONAGGIO0(A)>0 Then Add OGGETTIVISIBILI,OGGETTIDELPERSONAGGIO0(A)
  3821.  If RESTIDELPERSONAGGIO0(A)>0 Then Add OGGETTIVISIBILI,RESTIDELPERSONAGGIO0(A)
  3822. Next A
  3823. If NUMEROE>-1
  3824.  For A=0 To NUMEROE
  3825.   If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3826.    Inc EDIFICIVISIBILI
  3827.   End If 
  3828.  Next A
  3829. Else 
  3830.  EDIFICIVISIBILI=0
  3831. End If 
  3832. PERSONAGGIVISIBILI=1
  3833. For A=1 To NUMEROP
  3834.  If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIVISIBILI
  3835. Next A
  3836. E=POSIZIONEP(0)/$10000
  3837. If E>0
  3838.  If OGGETTIVISIBILI>0 and PERSONAGGIVISIBILI>0
  3839.   Print At(0,ULTIMALINEA);"Vuoi guardare un oggetto, un personaggio o la stanza (o/p/s) ?>";
  3840.   OGGETTOPERSONAGGIOOSTANZA$=Input$(1)
  3841.   OGGETTOPERSONAGGIOOSTANZA$=Lower$(OGGETTOPERSONAGGIOOSTANZA$)
  3842.   If OGGETTOPERSONAGGIOOSTANZA$="o"
  3843.    Proc GUARDAUNOGGETTO
  3844.   Else If OGGETTOPERSONAGGIOOSTANZA$="p"
  3845.    Proc GUARDAUNPERSONAGGIO
  3846.   Else If OGGETTOPERSONAGGIOOSTANZA$="s"
  3847.    Proc GUARDALASTANZA
  3848.   End If 
  3849.  Else If OGGETTIVISIBILI=0 and PERSONAGGIVISIBILI>0
  3850.   Print At(0,ULTIMALINEA);"Vuoi guardare un personaggio o la stanza (p/s) ?>";
  3851.   PERSONAGGIOOSTANZA$=Input$(1)
  3852.   PERSONAGGIOOSTANZA$=Lower$(PERSONAGGIOOSTANZA$)
  3853.   If PERSONAGGIOOSTANZA$="p"
  3854.    Proc GUARDAUNPERSONAGGIO
  3855.   Else If PERSONAGGIOOSTANZA$="s"
  3856.    Proc GUARDALASTANZA
  3857.   End If 
  3858.  End If 
  3859. Else 
  3860.  If EDIFICIVISIBILI>0 and OGGETTIVISIBILI>0 and PERSONAGGIVISIBILI>0
  3861.   Print At(0,ULTIMALINEA);"Vuoi guardare un'edificio, il luogo, un oggetto od un personaggio (e/l/o/p) ?>";
  3862.   EDIFICIOLUOGOOGGETTOOPERSONAGGIO$=Input$(1)
  3863.   EDIFICIOLUOGOOGGETTOOPERSONAGGIO$=Lower$(EDIFICIOLUOGOOGGETTOOPERSONAGGIO$)
  3864.   If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="e"
  3865.    Proc GUARDALEDIFICIO
  3866.   Else If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="l"
  3867.    Proc GUARDAILLUOGO
  3868.   Else If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="o"
  3869.    Proc GUARDAUNOGGETTO
  3870.   Else If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="p"
  3871.    Proc GUARDAUNPERSONAGGIO
  3872.   End If 
  3873.  Else If EDIFICIVISIBILI>0 and OGGETTIVISIBILI=0 and PERSONAGGIVISIBILI>0
  3874.   Print At(0,ULTIMALINEA);"Vuoi guardare un'edificio, il luogo od un personaggio (e/l/p) ?>";
  3875.   EDIFICIOLUOGOOPERSONAGGIO$=Input$(1)
  3876.   EDIFICIOLUOGOOPERSONAGGIO$=Lower$(EDIFICIOLUOGOOOPERSONAGGIO$)
  3877.   If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="e"
  3878.    Proc GUARDALEDIFICIO
  3879.   Else If EDIFICIOLUOGOOOPERSONAGGIO$="l"
  3880.    Proc GUARDAILLUOGO
  3881.   Else If EDIFICIOLUOGOOPERSONAGGIO$="p"
  3882.    Proc GUARDAUNPERSONAGGIO
  3883.   End If 
  3884.  Else If EDIFICIVISIBILI=0 and OGGETTIVISIBILI>0 and PERSONAGGIVISIBILI>0
  3885.   Print At(0,ULTIMALINEA);"Vuoi guardare il luogo, un oggetto od un personaggio (l/o/p) ?>";
  3886.   LUOGOOGGETTOOPERSONAGGIO$=Input$(1)
  3887.   LUOGOOGGETTOOPERSONAGGIO$=Lower$(LUOGOOGGETTOOPERSONAGGIO$)
  3888.   If LUOGOOGGETTOOPERSONAGGIO$="l"
  3889.    Proc GUARDAILLUOGO
  3890.   Else If LUOGOOGGETTOOPERSONAGGIO$="o"
  3891.    Proc GUARDAUNOGGETTO
  3892.   Else If LUOGOOGGETTOOPERSONAGGIO$="p"
  3893.    Proc GUARDAUNPERSONAGGIO
  3894.   End If 
  3895.  Else If EDIFICIVISIBILI=0 and OGGETTIVISIBILI=0 and PERSONAGGIVISIBILI>0
  3896.   Print At(0,ULTIMALINEA);"Vuoi guardare il luogo od un personaggio (l/p) ?>";
  3897.   LUOGOOPERSONAGGIO$=Input$(1)
  3898.   LUOGOOPERSONAGGIO$=Lower$(LUOGOOPERSONAGGIO$)
  3899.   If LUOGOOPERSONAGGIO$="l"
  3900.    Proc GUARDAILLUOGO
  3901.   Else If LUOGOOPERSONAGGIO$="p"
  3902.    Proc GUARDAUNPERSONAGGIO
  3903.   End If 
  3904.  End If 
  3905. End If 
  3906. End Proc
  3907. Procedure GUARDAILLUOGO
  3908. LUOGO$=NOMEL$(POSIZIONEP(0))
  3909. DESCRIZIONE$=DESCRIZIONEL$(POSIZIONEP(0))
  3910. COMPIUTAAZIONE=1
  3911. Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare il luogo ";LUOGO$;
  3912. Proc _ASPETTA
  3913. Proc MOSTRAMESSAGGIO["Descrizione del luogo "+LUOGO$,DESCRIZIONE$]
  3914. End Proc
  3915. Procedure GUARDALASTANZA
  3916. E=POSIZIONEP(0)/$10000 : S=POSIZIONEP(0) mod $10000
  3917. STANZA$=NOMES$(S,E)
  3918. DESCRIZIONE$=DESCRIZIONES$(S,E)
  3919. COMPIUTAAZIONE=1
  3920. Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare la stanza ";STANZA$;
  3921. Proc _ASPETTA
  3922. Proc MOSTRAMESSAGGIO["Descrizione della stanza "+STANZA$,DESCRIZIONE$]
  3923. End Proc
  3924. Procedure GUARDALEDIFICIO
  3925. For A=0 To NUMEROE
  3926.  If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3927.   Inc EDIFICIVISIBILI : E=A
  3928.  End If 
  3929. Next A
  3930. If EDIFICIVISIBILI>1
  3931.  Locate 0,ULTIMALINEA : Input "Quale edificio vuoi guardare ?>";EDIFICIO$;
  3932.  Curs Off 
  3933.  If EDIFICIO$<>""
  3934.   For A=1 To NUMEROE
  3935.    If Lower$(EDIFICIO$)=Lower$(NOMEE$(A)) and POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3936.     EDIFICIO$=NOMEE$(A)
  3937.     DESCRIZIONE$=DESCRIZIONEE$(A)
  3938.     COMPIUTAAZIONE=1
  3939.     Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'edificio ";EDIFICIO$;
  3940.     Proc _ASPETTA
  3941.     Proc MOSTRAMESSAGGIO["Descrizione dell'edificio "+EDIFICIO$,DESCRIZIONE$]
  3942.     Exit 
  3943.    End If 
  3944.   Next A
  3945.   If A=NUMEROP+1
  3946.    Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";EDIFICIO$;
  3947.    If _MUSICA=False
  3948.     Bell 1
  3949.    End If 
  3950.    Proc _ASPETTA
  3951.   End If 
  3952.  End If 
  3953. Else 
  3954.  EDIFICIO$=NOMEE$(E)
  3955.  DESCRIZIONE$=DESCRIZIONEE$(E)
  3956.  COMPIUTAAZIONE=1
  3957.  Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'edificio ";EDIFICIO$
  3958.  Proc _ASPETTA
  3959.  Proc MOSTRAMESSAGGIO["Descrizione dell'edificio "+EDIFICIO$,DESCRIZIONE$]
  3960. End If 
  3961. End Proc
  3962. Procedure GUARDAUNOGGETTO
  3963. For A=0 To NUMEROO
  3964.  If POSIZIONEO(A)=POSIZIONEP(0)
  3965.   Inc OGGETTIVISIBILI : O=A
  3966.  Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  3967.   Inc OGGETTIVISIBILI : O=A
  3968.  End If 
  3969. Next A
  3970. If OGGETTIVISIBILI>1
  3971.  Cls 
  3972.  For A=0 To NUMEROO
  3973.   If POSIZIONEO(A)=POSIZIONEP(0)
  3974.    If Btst(3,TIPOO(A))=False
  3975.     Print Str$(A+1)-" ";">";
  3976.     If Btst(1,TIPOO(A))=True
  3977.      Print NOMESRO$(CATEGORIAO(A))
  3978.     Else 
  3979.      Print NOMESCO$(CATEGORIAO(A))
  3980.     End If 
  3981.     Proc FONDOSCHERMOGIOCO
  3982.    End If 
  3983.   Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  3984.    Print Str$(A+1)-" ";">";
  3985.    If Btst(1,TIPOO(A))=True
  3986.     Print NOMESRO$(CATEGORIAO(A));
  3987.    Else 
  3988.     Print NOMESCO$(CATEGORIAO(A));
  3989.    End If 
  3990.    Print " (che stai trasportando)"
  3991.    Proc FONDOSCHERMOGIOCO
  3992.   End If 
  3993.  Next A
  3994.  Locate 0,ULTIMALINEA
  3995.  Input "Digita il numero dell'oggetto che vuoi guardare>";NUMEROOGGETTO$;
  3996.  Curs Off 
  3997.  If NUMEROOGGETTO$<>""
  3998.   NUMEROOGGETTO=Val(NUMEROOGGETTO$)
  3999.   For A=0 To NUMEROO
  4000.    If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False and A=NUMEROOGGETTO-1
  4001.     Exit 
  4002.    Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(3,TIPOO(A))=False and A=NUMEROOGGETTO-1
  4003.     Exit 
  4004.    End If 
  4005.   Next A
  4006.   If A=NUMEROO+1
  4007.    Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun oggetto col numero";NUMEROOGGETTO;
  4008.    If _MUSICA=False
  4009.     Bell 1
  4010.    End If 
  4011.    Proc _ASPETTA
  4012.   Else 
  4013.    OGGETTO$=NOMESCO$(CATEGORIAO(A))
  4014.    DESCRIZIONE$=DESCRIZIONECO$(CATEGORIAO(A))
  4015.    COMPIUTAAZIONE=1
  4016.    Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'oggetto ";OGGETTO$;
  4017.    Proc _ASPETTA
  4018.    Proc MOSTRAMESSAGGIO["Descrizione dell'oggetto "+OGGETTO$,DESCRIZIONE$]
  4019.   End If 
  4020.  End If 
  4021. Else 
  4022.  OGGETTO$=NOMESCO$(CATEGORIAO(O))
  4023.  DESCRIZIONE$=DESCRIZIONECO$(CATEGORIAO(O))
  4024.  COMPIUTAAZIONE=1
  4025.  Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'oggetto ";OGGETTO$;
  4026.  Proc _ASPETTA
  4027.  Proc MOSTRAMESSAGGIO["Descrizione dell'oggetto "+OGGETTO$,DESCRIZIONE$]
  4028. End If 
  4029. End Proc
  4030. Procedure GUARDAUNPERSONAGGIO
  4031. PERSONAGGIOVISIBILE=1
  4032. For A=0 To NUMEROP
  4033.  If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIVISIBILI
  4034. Next A
  4035. If PERSONAGGIVISIBILI>1
  4036.  Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi guardare ?>";PERSONAGGIO$;
  4037.  Curs Off 
  4038.  If PERSONAGGIO$<>""
  4039.   PERSONAGGIO$=Lower$(PERSONAGGIO$)
  4040.   If PERSONAGGIO$="me"
  4041.    PERSONAGGIO$=NOMEP$(0)
  4042.    DESCRIZIONE$=DESCRIZIONEP$(0)
  4043.    COMPIUTAAZIONE=1
  4044.    Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardarti";
  4045.    Proc _ASPETTA
  4046.    Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
  4047.   Else 
  4048.    For A=1 To NUMEROP
  4049.     If PERSONAGGIO$=Lower$(NOMEP$(A)) and POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4050.      PERSONAGGIO$=NOMEP$(A)
  4051.      DESCRIZIONE$=DESCRIZIONEP$(A)
  4052.      COMPIUTAAZIONE=1
  4053.      Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare il personaggio ";PERSONAGGIO$;
  4054.      Proc _ASPETTA
  4055.      Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
  4056.      Exit 
  4057.     End If 
  4058.    Next A
  4059.    If A=NUMEROP+1
  4060.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  4061.     If _MUSICA=False
  4062.      Bell 1
  4063.     End If 
  4064.     Proc _ASPETTA
  4065.    End If 
  4066.   End If 
  4067.  End If 
  4068. Else 
  4069.  PERSONAGGIO$=NOMEP$(0)
  4070.  DESCRIZIONE$=DESCRIZIONEP$(0)
  4071.  COMPIUTAAZIONE=1
  4072.  Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardarti";
  4073.  Proc _ASPETTA
  4074.  Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
  4075. End If 
  4076. End Proc
  4077. Procedure INFORMAZIONI
  4078. Cls 
  4079. TIC["Comandi utilizzabili:",0] : Print 
  4080. If TEMP0DIATTRAVERSAMENTOP(0)=0
  4081.  Print "Premi A aspettare cinque minuti di gioco"
  4082.  Print "Premi C per vedere le caratteristiche del tuo personaggio"
  4083.  Print "Premi D per dare un oggetto, un personaggio o dei soldi ad un personaggio"
  4084.  Print "Premi E per esaminare un oggetto od un personaggio"
  4085.  Print "Premi G per guardare un'edificio, un luogo, un oggetto od un personaggio"
  4086.  Print "Premi I per vedere l'inventario del tuo personaggio"
  4087.  Print "Premi J (Juke Box) per cambiare il motivo di sottofondo"
  4088.  Print "Premi L per lasciare un oggetto, un personaggio o dei soldi"
  4089.  Print "Premi M per muoverti"
  4090.  Print "Premi P per prendere un oggetto, un personaggio o dei soldi"
  4091.  Print "Premi T per cambiare il modo di visualizzazione del tempo trascorso"
  4092.  Print "Premi U per usare un oggetto su un altro oggetto o su un personaggio"
  4093.  Print "Premi X per smettere di giocare"
  4094.  Print "Premi Z per dormire"
  4095. Else 
  4096.  Print "Premi A per aspettare cinque minuti di gioco"
  4097.  Print "Premi C per vedere le caratteristiche del tuo personaggio"
  4098.  Print "Premi D per dare un oggetto, un personaggio o dei soldi ad un personaggio"
  4099.  Print "Premi I per vedere l'inventario del tuo personaggio"
  4100.  Print "Premi J (Juke Box) per cambiare il motivo di sottofondo"
  4101.  Print "Premi M per muoverti"
  4102.  Print "Premi T per cambiare il modo di visualizzazione del tempo trascorso"
  4103.  Print "Premi X per smettere di giocare"
  4104.  Print "Premi Z per dormire"
  4105. End If 
  4106. Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  4107. End Proc
  4108. Procedure INIZIALIZZALEVARIABILI
  4109. MESSAGGIO1$=""
  4110. For A=0 To NUMMASCO
  4111.  NOMESCO$(A)="Oggetto"+Str$(A)
  4112.  NOMEPCO$(A)="Oggetti"+Str$(A)
  4113.  NOMESRO$(A)="Resto oggetto"+Str$(A)
  4114.  NOMEPRO$(A)="Resti oggetti"+Str$(A)
  4115.  PESOCO(A)=5
  4116.  PESORESTOCO(A)=1
  4117.  DESCRIZIONECO$(A)="Descrizione della categoria"+Str$(A)+" degli oggetti"
  4118. Next A
  4119. For A=0 To NUMMASE
  4120.  NOMEE$(A)="Edificio"+Str$(A)
  4121.  DESCRIZIONEE$(A)="Descrizione dell'edificio"+Str$(A)
  4122.  For B=0 To NUMMASS
  4123.   NOMES$(B,A)="Stanza"+Str$(B)
  4124.   DESCRIZIONES$(B,A)="Descrizione della stanza"+Str$(A)
  4125.  Next B
  4126. Next A
  4127. For A=0 To NUMMASL
  4128.  NOMEL$(A)="Luogo"+Str$(A)
  4129.  DESCRIZIONEL$(A)="Descrizione del luogo"+Str$(A)
  4130. Next A
  4131. For A=0 To NUMMASP
  4132.  NOMEP$(A)="Personaggio"+Str$(A)
  4133.  C0STITUZIONEP(A)=1
  4134.  DESTREZZAP(A)=1
  4135.  F0RZAP(A)=1
  4136.  PESOP(A)=1
  4137.  RESISTENZAP(A)=1
  4138.  DESCRIZIONEP$(A)="Descrizione del personaggio"+Str$(A)
  4139. Next A
  4140. For A=0 To NUMMASR
  4141.  NOMER$(A)="Regione"+Str$(A)
  4142. Next A
  4143. End Proc
  4144. Procedure INSERISCIPARAMETRIAZIONE[AZIONE,A,P]
  4145. Cls 
  4146. Print "Nome del personaggio";P;">";NOMEP$(P)
  4147. Locate 0,ULTIMALINEA
  4148. If AZIONE=1
  4149.  Input "Quanti oggetti vuole dare ai personaggi (1-65535) ?>";PARA;
  4150.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4151. Else If AZIONE=2
  4152.  Input "Quanti oggetti vuole dare ai personaggi?>";PARA;
  4153.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4154.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4155.  PARABAZIONEP(A,P)=Param
  4156. Else If AZIONE=3
  4157.  Input "Quanti oggetti vuole dare ai personaggi (1-65535) ?>";PARA;
  4158.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4159.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4160.  PARABAZIONEP(AZIONE,P)=Param
  4161. Else If AZIONE=4
  4162.  Input "Quanti personaggi vuole dare ai personaggi (1-65535) ?>";PARA;
  4163.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4164. Else If AZIONE=5
  4165.  Repeat 
  4166.   Input "Quale personaggio vuole dare ai personaggi (1-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4167.   Proc LIMITI[PARA,1,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4168.   Locate 0,ULTIMALINEA
  4169.  Until PARA<>P
  4170. Else If AZIONE=6
  4171.  Repeat 
  4172.   Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4173.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4174.   Locate 0,ULTIMALINEA : Cline 
  4175.  Until PARA<>P
  4176.  Input "Quanti oggetti vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4177.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4178. Else If AZIONE=7
  4179.  Repeat 
  4180.   Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4181.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4182.   Locate 0,ULTIMALINEA
  4183.  Until PARA<>P
  4184.  Input "Quanti oggetti vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4185.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4186.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4187.  PARACAZIONEP(A,P)=Param
  4188. Else If AZIONE=8
  4189.  Repeat 
  4190.   Locate 0,ULTIMALINEA
  4191.   Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4192.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4193.   Locate 0,ULTIMALINEA : Cline 
  4194.  Until PARA<>P
  4195.  Input "Quanti oggetti vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4196.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4197.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4198.  PARACAZIONEP(A,P)=Param
  4199. Else If AZIONE=9
  4200.  Repeat 
  4201.   Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4202.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4203.   Locate 0,ULTIMALINEA : Cline 
  4204.  Until PARA<>P
  4205.  Input "Quanti personaggi vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4206.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4207. Else If AZIONE=10
  4208.  Repeat 
  4209.   Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4210.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=PARA
  4211.   Locate 0,ULTIMALINEA : Cline 
  4212.  Until PARA<>P
  4213.  Repeat 
  4214.   Input "Quale personaggio vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4215.   Proc LIMITI[PARB,0,NUMEROP] : PARABAZIONEP(A,P)=Param
  4216.   Locate 0,ULTIMALINEA : Cline 
  4217.  Until PARB<>PARA
  4218. Else If AZIONE=11
  4219.  Input "Quanti oggetti vuole lasciare (1-65535) ?>";PARA;
  4220.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4221. Else If AZIONE=12
  4222.  Input "Quanti oggetti vuole lasciare (1-65535) ?>";PARA;
  4223.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4224.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4225.  PARABAZIONEP(A,P)=Param
  4226. Else If AZIONE=13
  4227.  Input "Quanti oggetti vuole lasciare (1-65535) ?>";PARA;
  4228.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4229.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4230.  PARABAZIONEP(A,P)=Param
  4231. Else If AZIONE=14
  4232.  Input "Quanti personaggi vuole lasciare (1-65535) ?>";PARA;
  4233.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4234. Else If AZIONE=15
  4235.  Repeat 
  4236.   Input "Quale personaggio vuole lasciare (1-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4237.   Proc LIMITI[PARA,1,65535] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4238.   Locate 0,ULTIMALINEA : Cline 
  4239.  Until PARA<>P
  4240. Else If AZIONE=17
  4241.  Input "Quanti oggetti vuole prendere (1-65535) ?>";PARA;
  4242.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4243. Else If AZIONE=18
  4244.  Input "Quanti oggetti vuole prendere (1-65535) ?>";PARA;
  4245.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4246.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4247.  PARABAZIONEP(A,P)=Param
  4248. Else If AZIONE=19
  4249.  Input "Quanti oggetti vuole prendere (1-65535) ?>";PARA;
  4250.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4251.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4252.  PARABAZIONEP(A,P)=Param
  4253. Else If AZIONE=20
  4254.  Input "Quanti personaggi vuole prendere (1-65535) ?>";PARA;
  4255.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4256. Else If AZIONE=21
  4257.  Repeat 
  4258.   Input "Quale personaggio vuole prendere (1-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4259.   Proc LIMITI[PARA,1,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4260.   Locate 0,ULTIMALINEA : Cline 
  4261.  Until PARA<>P
  4262. Else If AZIONE=23
  4263.  Repeat 
  4264.   Input "Quale personaggio vuole seguire (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4265.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4266.   Locate 0,ULTIMALINEA : Cline 
  4267.  Until PARA<>P
  4268. Else If AZIONE=24
  4269.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARA;
  4270.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4271. Else If AZIONE=25
  4272.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARA;
  4273.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4274.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4275.  PARABAZIONEP(A,P)=Param
  4276. Else If AZIONE=26
  4277.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARA;
  4278.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4279.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4280.  PARABAZIONEP(A,P)=Param
  4281. Else If AZIONE=27
  4282.  Input "Su quanti personaggi vuole usare (1-65535) ?>";PARA;
  4283.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4284. Else If AZIONE=28
  4285.  Repeat 
  4286.   Input "Su quale personaggio vuole usare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4287.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4288.   Locate 0,ULTIMALINEA : Cline 
  4289.  Until PARA<>P
  4290. Else If AZIONE=29
  4291.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4292.  PARAAAZIONEP(A,P)=Param
  4293.  Locate 0,ULTIMALINEA : Cline 
  4294.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4295.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4296. Else If AZIONE=30
  4297.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4298.  PARAAAZIONEP(A,P)=Param
  4299.  Locate 0,ULTIMALINEA : Cline 
  4300.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4301.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4302.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4303.  PARACAZIONEP(A,P)=Param
  4304. Else If AZIONE=31
  4305.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4306.  PARAAAZIONEP(A,P)=Param
  4307.  Locate 0,ULTIMALINEA : Cline 
  4308.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4309.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4310.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4311.  PARACAZIONEP(A,P)=Param
  4312. Else If AZIONE=32
  4313.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4314.  PARAAAZIONEP(A,P)=Param
  4315.  Locate 0,ULTIMALINEA : Cline 
  4316.  Input "Su quanti personaggi vuole usare (1-65535) ?>";PARB;
  4317.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4318. Else If AZIONE=33
  4319.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4320.  PARAAAZIONEP(A,P)=Param
  4321.  Locate 0,ULTIMALINEA : Cline 
  4322.  Repeat 
  4323.   Input "Su quale personaggio vuole usare (0-"+Str$(NUMEROP)-" "+") ?>";PARB;
  4324.   Proc LIMITI[PARB,0,NUMEROP] : PARB=Param : PARABAZIONEP(A,P)=Param
  4325.   Locate 0,ULTIMALINEA : Cline 
  4326.  Until PARB<>P
  4327. Else If AZIONE=34
  4328.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4329.  PARAAAZIONEP(A,P)=Param
  4330.  Cls 
  4331.  Print "Nome del personaggio";P;">";NOMEP$(P)
  4332.  Locate 0,ULTIMALINEA : Cline 
  4333.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4334.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4335. Else If AZIONE=35
  4336.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4337.  PARAAAZIONEP(A,P)=Param
  4338.  Cls 
  4339.  Print "Nome del personaggio";P;">";NOMEP$(P)
  4340.  Locate 0,ULTIMALINEA : Cline 
  4341.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4342.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4343.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4344.  PARACAZIONEP(A,P)=Param
  4345. Else If AZIONE=36
  4346.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4347.  PARAAAZIONEP(A,P)=Param
  4348.  Cls 
  4349.  Print "Nome del personaggio";P;">";NOMEP$(P)
  4350.  Locate 0,ULTIMALINEA : Cline 
  4351.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4352.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4353.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4354.  PARACAZIONEP(A,P)=Param
  4355. Else If AZIONE=37
  4356.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4357.  PARAAAZIONEP(A,P)=Param
  4358.  Cls 
  4359.  Print "Nome del personaggio";P;">";NOMEP$(P)
  4360.  Locate 0,ULTIMALINEA : Cline 
  4361.  Input "Su quanti personaggi vuole usare (1-65535) ?>";PARB;
  4362.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4363. Else If AZIONE=38
  4364.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4365.  PARAAAZIONEP(AZIONE,P)=Param
  4366.  Cls 
  4367.  Print "Nome del personaggio";P;">";NOMEP$(P)
  4368.  Locate 0,ULTIMALINEA : Cline 
  4369.  Repeat 
  4370.   Input "Su quale personaggio vuole usare (0-"+Str$(NUMEROP)-" "+") ?>";PARB;
  4371.   Proc LIMITI[PARB,0,NUMEROP] : PARB=Param : PARABAZIONEP(A,P)=Param
  4372.   Locate 0,ULTIMALINEA : Cline 
  4373.  Until PARB<>P
  4374. Else If AZIONE=40
  4375.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4376.  PARAAAZIONEP(A,P)=Param
  4377. Else If AZIONE=41
  4378.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4379.  PARAAAZIONEP(A,P)=Param
  4380. End If 
  4381. End Proc
  4382. Procedure INVENTARIO
  4383. Cls 
  4384. Print "Inventario degli oggetti e dei personaggi trasportati da ";NOMEP$(0);">"
  4385. For A=0 To NUMEROO
  4386.  If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  4387.   OGGETTIPRESENTI=True
  4388.  End If 
  4389. Next A
  4390. If SOLDIP(0)>0 Then OGGETTIPRESENTI=True
  4391. If OGGETTIPRESENTI=True
  4392.  For A=0 To NUMEROCO
  4393.   If OGGETTIDELPERSONAGGIO0(A)>0
  4394.    Print Str$(OGGETTIDELPERSONAGGIO0(A))-" ";" ";
  4395.    If OGGETTIDELPERSONAGGIO0(A)=1
  4396.     Print NOMESCO$(A)
  4397.    Else 
  4398.     Print NOMEPCO$(A)
  4399.    End If 
  4400.    Proc FONDOSCHERMOGIOCO
  4401.   End If 
  4402.   If RESTIDELPERSONAGGIO0(A)>0
  4403.    Print Str$(RESTIDELPERSONAGGIO0(A))-" ";" ";
  4404.    If RESTIDELPERSONAGGIO0(A)=1
  4405.     Print NOMESRO$(A)
  4406.    Else 
  4407.     Print NOMEPRO$(A)
  4408.    End If 
  4409.    Proc FONDOSCHERMOGIOCO
  4410.   End If 
  4411.  Next A
  4412.  If SOLDIP(0)>0
  4413.   Print Str$(SOLDIP(0))-" ";" ";
  4414.   If SOLDIP(0)=1
  4415.    Print "soldo"
  4416.   Else 
  4417.    Print "soldi"
  4418.   End If 
  4419.   Proc FONDOSCHERMOGIOCO
  4420.  End If 
  4421. Else 
  4422.  Print "Nessun oggetto trasportato"
  4423. End If 
  4424. For A=1 To NUMEROP
  4425.  If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True Then PERSONAGGIPRESENTI=True
  4426. Next A
  4427. If PERSONAGGIPRESENTI=True
  4428.  Print "Personaggi trasportati da ";NOMEP$(0);">"
  4429.  For A=1 To NUMEROP
  4430.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4431.    Print NOMEP$(A)
  4432.   End If 
  4433.   Proc FONDOSCHERMOGIOCO
  4434.  Next A
  4435. Else 
  4436.  Print "Nessun personaggio trasportato"
  4437. End If 
  4438. If OGGETTIPRESENTI=True or PERSONAGGIPRESENTI=True
  4439.  Print "Peso totale degli oggetti e dei personaggi trasportati>";
  4440.  If PESONETTOP(0)>999
  4441.   PESOOEPDELP0=PESONETTOP(0)/1000
  4442.   Print Str$(PESOOEPDELP0)-" ";" ";
  4443.   If PESOOEPDELP0=1
  4444.    Print "chilo";
  4445.   Else 
  4446.    Print "chili";
  4447.   End If 
  4448.   PESOOEPDELP0=PESONETTOP(0) mod 1000
  4449.   If PESOOEPDELP0>0
  4450.    Print " e";PESOOEPDELP0;" ";
  4451.    If PESOOEPDELP0=1
  4452.     Print "grammo"
  4453.    Else 
  4454.     Print "grammi"
  4455.    End If 
  4456.   Else 
  4457.    Print 
  4458.   End If 
  4459.  Else 
  4460.   PESOOEPDELP0=PESONETTOP(0)
  4461.   Print Str$(PESOOEPDELP0)-" ";" ";
  4462.   If PESOOEPDELP0=1
  4463.    Print "grammo"
  4464.   Else 
  4465.    Print "grammi"
  4466.   End If 
  4467.  End If 
  4468. End If 
  4469. Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  4470. End Proc
  4471. Procedure LASCIA
  4472. If TEMP0DIATTRAVERSAMENTOP(0)>0
  4473.  For A=1 To NUMEROP
  4474.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4475.    Inc PERSONAGGI
  4476.   End If 
  4477.  Next A
  4478.  If PERSONAGGI>0
  4479.   Proc LASCIAUNPERSONAGGIO
  4480.  Else 
  4481.   Print At(0,ULTIMALINEA);"Non hai personaggi da lasciare";
  4482.   If _MUSICA=False
  4483.    Bell 1
  4484.   End If 
  4485.   Proc _ASPETTA
  4486.   Pop Proc
  4487.  End If 
  4488. Else 
  4489.  For A=1 To NUMEROP
  4490.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4491.    Inc PERSONAGGI
  4492.   End If 
  4493.  Next A
  4494. End If 
  4495. For A=0 To NUMEROCO
  4496.  If OGGETTIDELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  4497.  If RESTIDELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  4498. Next A
  4499. If SOLDIP(0)>0 Then SOLDI=True
  4500. If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=True
  4501.  Print At(0,ULTIMALINEA);"Vuoi lasciare un oggetto,un personaggio o dei soldi (o/p/s) ?>";
  4502.  OGGETTOOPERSONAGGIO$=Input$(1)
  4503.  OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  4504.  If OGGETTOOPERSONAGGIO$="o"
  4505.   Proc LASCIAUNOGGETTO
  4506.  Else If OGGETTOOPERSONAGGIO$="p"
  4507.   Proc LASCIAUNPERSONAGGIO
  4508.  Else If OGGETTOOPERSONAGGIO$="s"
  4509.   Proc LASCIADEISOLDI
  4510.  End If 
  4511. Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=True
  4512.  Print At(0,ULTIMALINEA);"Vuoi lasciare un oggetto o dei soldi (o/s) ?>";
  4513.  OGGETTOOSOLDI$=Input$(1)
  4514.  OGGETTOOSOLDI$=Lower$(OGGETTOOSOLDI$)
  4515.  If OGGETTOOSOLDI$="o"
  4516.   Proc LASCIAUNOGGETTO
  4517.  Else If OGGETTOOSOLDI$="s"
  4518.   Proc LASCIADEISOLDI
  4519.  End If 
  4520. Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=True
  4521.  Print At(0,ULTIMALINEA);"Vuoi lasciare un personaggio o dei soldi (p/s) ?>";
  4522.  PERSONAGGIOOSOLDI$=Input$(1)
  4523.  PERSONAGGIOOSOLDI$=Lower$(PERSONAGGIOOSOLDI$)
  4524.  If PERSONAGGIOOSOLDI$="p"
  4525.   Proc LASCIAUNPERSONAGGIO
  4526.  Else If PERSONAGGIOOSOLDI$="s"
  4527.   Proc LASCIADEISOLDI
  4528.  End If 
  4529. Else If CATEGORIEOGGETTI=0 and PERSONAGGI=0 and SOLDI=True
  4530.  Proc LASCIADEISOLDI
  4531. Else If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=False
  4532.  Print At(0,ULTIMALINEA);"Vuoi lasciare un oggetto od un personaggio (o/p) ?>";
  4533.  OGGETTOOPERSONAGGIO$=Input$(1)
  4534.  OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  4535.  If OGGETTOOPERSONAGGIO$="o"
  4536.   Proc LASCIAUNOGGETTO
  4537.  Else If OGGETTOOPERSONAGGIO$="p"
  4538.   Proc LASCIAUNPERSONAGGIO
  4539.  End If 
  4540. Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=False
  4541.  Proc LASCIAUNOGGETTO
  4542. Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=False
  4543.  Proc LASCIAUNPERSONAGGIO
  4544. Else 
  4545.  Print At(0,ULTIMALINEA);"Non hai oggetti,personaggi o soldi da lasciare";
  4546.  If _MUSICA=False
  4547.   Bell 1
  4548.  End If 
  4549.  Proc _ASPETTA
  4550. End If 
  4551. End Proc
  4552. Procedure LASCIAAO[AZIONE,P]
  4553. NUMEROOGGETTIDELPERSONAGGIOP=-1
  4554. For A=0 To NUMEROO
  4555.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  4556.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  4557.   B=A
  4558.  End If 
  4559. Next A
  4560. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  4561.  Pop Proc
  4562. End If 
  4563. If NUMEROOGGETTIDELPERSONAGGIOP=0
  4564.  A=B
  4565. Else 
  4566.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  4567.  B=0
  4568.  For A=0 To NUMEROO
  4569.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  4570.    OGGETTODELPERSONAGGIOP(B)=A
  4571.    Inc B
  4572.   End If 
  4573.  Next A
  4574.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  4575. End If 
  4576. POSIZIONEO(A)=POSIZIONEP(P)
  4577. If Btst(1,TIPOO(A))=True
  4578.  Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  4579. Else 
  4580.  Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  4581. End If 
  4582. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  4583.  For B=0 To NUMEROO
  4584.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  4585.    If Btst(1,TIPOO(B))=True
  4586.     Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  4587.    Else 
  4588.     Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  4589.    End If 
  4590.   End If 
  4591.  Next B
  4592.  For B=1 To NUMEROP
  4593.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  4594.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESOP(B)*1000
  4595.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESONETTOP(B)
  4596.   End If 
  4597.  Next B
  4598. End If 
  4599. If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(2,TIPOP(0))=False
  4600.  Print NOMEP$(P);" lascia 1 ";
  4601.  If Btst(1,TIPOO(A))=True
  4602.   Print NOMESRO$(CATEGORIAO(A))
  4603.  Else 
  4604.   Print NOMESCO$(CATEGORIAO(A))
  4605.  End If 
  4606. End If 
  4607. Dec PARAAAZIONEP(AZIONE,P)
  4608. If PARAAAZIONEP(AZIONE,P)=0
  4609.  FINEA(AZIONE,P)=True
  4610. End If 
  4611. End Proc
  4612. Procedure LASCIAAOB[AZIONE,P]
  4613. NUMEROOGGETTIDELPERSONAGGIOP=-1
  4614. For A=0 To NUMEROO
  4615.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  4616.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  4617.   B=A
  4618.  End If 
  4619. Next A
  4620. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  4621.  Pop Proc
  4622. End If 
  4623. If NUMEROOGGETTIDELPERSONAGGIOP=0
  4624.  A=B
  4625. Else 
  4626.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  4627.  B=0
  4628.  For A=0 To NUMEROO
  4629.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  4630.    OGGETTODELPERSONAGGIOP(B)=A
  4631.    Inc B
  4632.   End If 
  4633.  Next A
  4634.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  4635. End If 
  4636. POSIZIONEO(A)=POSIZIONEP(P)
  4637. If Btst(1,TIPOO(A))=True
  4638.  Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  4639. Else 
  4640.  Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  4641. End If 
  4642. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  4643.  For B=0 To NUMEROO
  4644.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  4645.    If Btst(1,TIPOO(B))=True
  4646.     Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  4647.    Else 
  4648.     Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  4649.    End If 
  4650.   End If 
  4651.  Next B
  4652.  For B=1 To NUMEROP
  4653.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  4654.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESOP(B)*1000
  4655.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESONETTOP(B)
  4656.   End If 
  4657.  Next B
  4658. End If 
  4659. If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(2,TIPOP(0))=False
  4660.  Print NOMEP$(P);" lascia 1 ";
  4661.  If Btst(1,TIPOO(A))=True
  4662.   Print NOMESRO$(CATEGORIAO(A))
  4663.  Else 
  4664.   Print NOMESCO$(CATEGORIAO(A))
  4665.  End If 
  4666. End If 
  4667. Dec PARAAAZIONEP(AZIONE,P)
  4668. If PARAAAZIONEP(AZIONE,P)=0
  4669.  FINEA(AZIONE,P)=True
  4670. End If 
  4671. End Proc
  4672. Procedure LASCIAAOTB[AZIONE,P]
  4673. NUMEROOGGETTIDELPERSONAGGIOP=-1
  4674. For A=0 To NUMEROO
  4675.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  4676.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  4677.   B=A
  4678.  End If 
  4679. Next A
  4680. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  4681.  Pop Proc
  4682. End If 
  4683. If NUMEROOGGETTIDELPERSONAGGIOP=0
  4684.  A=B
  4685. Else 
  4686.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  4687.  B=0
  4688.  For A=0 To NUMEROO
  4689.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  4690.    OGGETTODELPERSONAGGIOP(B)=A
  4691.    Inc B
  4692.   End If 
  4693.  Next A
  4694.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  4695. End If 
  4696. POSIZIONEO(A)=POSIZIONEP(P)
  4697. If Btst(1,TIPOO(A))=True
  4698.  Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  4699. Else 
  4700.  Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  4701. End If 
  4702. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  4703.  For B=0 To NUMEROO
  4704.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  4705.    If Btst(1,TIPOO(B))=True
  4706.     Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  4707.    Else 
  4708.     Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  4709.    End If 
  4710.   End If 
  4711.  Next B
  4712.  For B=1 To NUMEROP
  4713.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  4714.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESOP(B)*1000
  4715.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESONETTOP(B)
  4716.   End If 
  4717.  Next B
  4718. End If 
  4719. If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(2,TIPOP(0))=False
  4720.  Print NOMEP$(P);" lascia 1 ";
  4721.  If Btst(1,TIPOO(A))=True
  4722.   Print NOMESRO$(CATEGORIAO(A))
  4723.  Else 
  4724.   Print NOMESCO$(CATEGORIAO(A))
  4725.  End If 
  4726. End If 
  4727. Dec PARAAAZIONEP(AZIONE,P)
  4728. If PARAAAZIONEP(AZIONE,P)=0
  4729.  FINEA(AZIONE,P)=True
  4730. End If 
  4731. End Proc
  4732. Procedure LASCIAAP[AZIONE,P]
  4733. For A=1 To NUMEROP
  4734.  If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  4735.   POSIZIONEP(A)=POSIZIONEP(P)
  4736.   TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4737.   Bclr 0,TIPOP(A)
  4738.   Add PESONETTOP(P),-PESOP(A)*1000
  4739.   Add PESONETTOP(P),-PESONETTOP(A)
  4740.   If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
  4741.    Print NOMEP$(P);" lascia ";NOMEP$(A)
  4742.   End If 
  4743.   Dec PARABAZIONEP(AZIONE,P)
  4744.   If PARABAZIONEP(AZIONE,P)=0
  4745.    FINEA(AZIONE,P)=True
  4746.   End If 
  4747.   Exit 
  4748.  End If 
  4749. Next A
  4750. End Proc
  4751. Procedure LASCIADEISOLDI
  4752. Locate 0,ULTIMALINEA : Input "Quanti soldi vuoi lasciare (0-"+Str$(SOLDIP(0))-" "+") ?>";SOLDI$;
  4753. Curs Off 
  4754. If SOLDI$<>""
  4755.  SOLDI=Val(SOLDI$)
  4756.  Proc LIMITI[SOLDI,0,SOLDIP(0)] : SOLDI=Param
  4757.  If SOLDI>0
  4758.   Add SOLDIP(0),-SOLDI
  4759.   E=POSIZIONEP(0)/$10000
  4760.   If E>0
  4761.    S=POSIZIONEP(0) mod $10000
  4762.    Add SOLDIS(S,E-1),SOLDI
  4763.   Else 
  4764.    Add SOLDIL(POSIZIONEP(0)),SOLDI
  4765.   End If 
  4766.   Add PESONETTOP(0),-SOLDI*PESOS
  4767.   COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4768.   Print "Hai deciso di lasciare";SOLDI;
  4769.   If SOLDI=1
  4770.    Print " soldo";
  4771.   Else 
  4772.    Print " soldi";
  4773.   End If 
  4774.   Proc _ASPETTA
  4775.  End If 
  4776. End If 
  4777. End Proc
  4778. Procedure LASCIAOGGETTO[O]
  4779. POSIZIONEO(O)=POSIZIONEP(0)
  4780. If Btst(1,TIPOO(O))=True
  4781.  Dec RESTIDELPERSONAGGIO0(CATEGORIAO(O))
  4782.  Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(O))
  4783. Else 
  4784.  Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  4785.  Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  4786.  Inc OGGETTIDATIOLASCIATI(CATEGORIAO(O))
  4787. End If 
  4788. If Btst(1,TIPOCO(CATEGORIAO(O)))=True
  4789.  For A=0 To NUMEROO
  4790.   If POSIZIONEO(A)=-1-O and Btst(0,TIPOO(A))=False
  4791.    If Btst(1,TIPOO(A))=True
  4792.     Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(A))
  4793.    Else 
  4794.     Add PESONETTOP(0),-PESOCO(CATEGORIAO(A))
  4795.    End If 
  4796.   End If 
  4797.  Next A
  4798.  For A=1 To NUMEROP
  4799.   If POSIZIONEP(A)=-1-O and Btst(0,TIPOP(A))=False
  4800.    Add PESONETTOP(0),-PESOP(A)*1000
  4801.    Add PESONETTOP(0),-PESONETTOP(A)
  4802.   End If 
  4803.  Next A
  4804. End If 
  4805. COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4806. Print "Hai deciso di lasciare 1 ";
  4807. If Btst(1,TIPOO(O))=True
  4808.  Print NOMESRO$(CATEGORIAO(O));
  4809. Else 
  4810.  Print NOMESCO$(CATEGORIAO(O));
  4811. End If 
  4812. Proc _ASPETTA
  4813. End Proc
  4814. Procedure LASCIAPA[AZIONE,P]
  4815. A=PARAAAZIONEP(AZIONE,P)
  4816. If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  4817.  POSIZIONEP(A)=POSIZIONEP(P)
  4818.  TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0)
  4819.  Bclr 0,TIPOP(A)
  4820.  Add PESONETTOP(P),-PESOP(A)*1000
  4821.  Add PESONETTOP(P),-PESONETTOP(A)
  4822.  If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
  4823.   Print NOMEP$(P);" lascia ";NOMEP$(A)
  4824.  End If 
  4825.  FINEA(AZIONE,P)=True
  4826. End If 
  4827. End Proc
  4828. Procedure LASCIAPASSAREILTEMPO
  4829. COMPIUTAAZIONE=5
  4830. Print At(0,ULTIMALINEA);"Hai deciso di aspettare cinque minuti";
  4831. Proc _ASPETTA
  4832. End Proc
  4833. Procedure LASCIAUNOGGETTO
  4834. For A=0 To NUMEROCO
  4835.  If OGGETTIDELPERSONAGGIO0(A)>0
  4836.   Inc CATEGORIEOGGETTI
  4837.  End If 
  4838.  If RESTIDELPERSONAGGIO0(A)>0
  4839.   Inc CATEGORIEOGGETTI
  4840.  End If 
  4841. Next A
  4842. OGGETTODIFENSIVOINDOSSATO=-1
  4843. For A=0 To NUMEROO
  4844. If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4845.  If Btst(2,TIPOO(A))=True
  4846.   OGGETTODIFENSIVOINDOSSATO=A
  4847.  Else 
  4848.   Inc OGGETTIERESTIDIFENSIVINONINDOSSATI
  4849.   If Btst(1,TIPOO(A))=True
  4850.    Inc RESTIDIFENSIVINONINDOSSATI
  4851.   Else 
  4852.    Inc OGGETTIDIFENSIVINONINDOSSATI
  4853.   End If 
  4854.  End If 
  4855. End If 
  4856. Next A
  4857. If CATEGORIEOGGETTI>0
  4858.  If CATEGORIEOGGETTI>1
  4859.   Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi lasciare ?>";OGGETTO$;
  4860.   Curs Off 
  4861.   If OGGETTO$<>""
  4862.    For A=0 To NUMEROO
  4863.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  4864.      If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=False
  4865.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4866.        If OGGETTODIFENSIVOINDOSSATO>-1
  4867.         If OGGETTIDIFENSIVINONINDOSSATI=0
  4868.          Bclr 2,TIPOO(A)
  4869.          Proc LASCIAOGGETTO[A] : Exit 
  4870.         Else 
  4871.          If A<>OGGETTODIFENSIVOINDOSSATO
  4872.           Proc LASCIAOGGETTO[A] : Exit 
  4873.          Else 
  4874.           If RESTIDIFENSIVINONINDOSSATI>0
  4875.            Bclr 2,TIPOO(A)
  4876.            Proc LASCIAOGGETTO[A] : Exit 
  4877.           End If 
  4878.          End If 
  4879.         End If 
  4880.        Else 
  4881.         Proc LASCIAOGGETTO[A] : Exit 
  4882.        End If 
  4883.       Else 
  4884.        Proc LASCIAOGGETTO[A] : Exit 
  4885.       End If 
  4886.      Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=True
  4887.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4888.        If OGGETTODIFENSIVOINDOSSATO>-1
  4889.         If RESTIDIFENSIVINONINDOSSATI=0
  4890.          Bclr 2,TIPOO(A)
  4891.          Proc LASCIAOGGETTO[A] : Exit 
  4892.         Else 
  4893.          If A<>OGGETTODIFENSIVOINDOSSATO
  4894.           Proc LASCIAOGGETTO[A] : Exit 
  4895.          Else 
  4896.           If OGGETTIDIFENSIVINONINDOSSATI>0
  4897.            Bclr 2,TIPOO(A)
  4898.            Proc LASCIAOGGETTO[A] : Exit 
  4899.           End If 
  4900.          End If 
  4901.         End If 
  4902.        Else 
  4903.         Proc LASCIAOGGETTO[A] : Exit 
  4904.        End If 
  4905.       Else 
  4906.        Proc LASCIAOGGETTO[A] : Exit 
  4907.       End If 
  4908.      End If 
  4909.     End If 
  4910.    Next A
  4911.    If A=NUMEROO+1
  4912.     Locate 0,ULTIMALINEA : Cline : Print "Non hai nessun ";OGGETTO$;
  4913.     If _MUSICA=False
  4914.      Bell 1
  4915.     End If 
  4916.     Proc _ASPETTA
  4917.    End If 
  4918.   End If 
  4919.  Else 
  4920.   For A=0 To NUMEROO
  4921.    If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  4922.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4923.      If OGGETTODIFENSIVOINDOSSATO>-1
  4924.       If OGGETTIERESTIDIFENSIVINONINDOSSATI=0
  4925.        Bclr 2,TIPOO(A)
  4926.        Proc LASCIAOGGETTO[A] : Exit 
  4927.       Else 
  4928.        If A<>OGGETTODIFENSIVOINDOSSATO
  4929.         Proc LASCIAOGGETTO[A] : Exit 
  4930.        End If 
  4931.       End If 
  4932.      Else 
  4933.       Proc LASCIAOGGETTO[A] : Exit 
  4934.      End If 
  4935.     Else 
  4936.      Proc LASCIAOGGETTO[A] : Exit 
  4937.     End If 
  4938.    End If 
  4939.   Next A
  4940.  End If 
  4941. End If 
  4942. End Proc
  4943. Procedure LASCIAUNPERSONAGGIO
  4944. For A=1 To NUMEROP
  4945.  If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4946.   Inc PERSONAGGI
  4947.  End If 
  4948. Next A
  4949. If PERSONAGGI>0
  4950.  If PERSONAGGI>1
  4951.   Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi lasciare ?>";PERSONAGGIO$;
  4952.   Curs Off 
  4953.   If PERSONAGGIO$<>""
  4954.    For A=0 To NUMEROP
  4955.     If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A)) and POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4956.      POSIZIONEP(A)=POSIZIONEP(0)
  4957.      TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0)
  4958.      DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4959.      Add PESONETTOP(0),-PESOP(A)*1000
  4960.      Add PESONETTOP(0),-PESONETTOP(A)
  4961.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4962.      Print "Hai deciso di lasciare ";NOMEP$(A);
  4963.      Proc _ASPETTA : Exit 
  4964.     End If 
  4965.    Next A
  4966.    If A=NUMEROP+1
  4967.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  4968.     If _MUSICA=False
  4969.      Bell 1
  4970.     End If 
  4971.     Proc _ASPETTA
  4972.    End If 
  4973.   End If 
  4974.  Else 
  4975.   For A=0 To NUMEROP
  4976.    If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4977.     POSIZIONEP(A)=POSIZIONEP(0)
  4978.     TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0)
  4979.     DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4980.     Add PESONETTOP(0),-PESOP(A)*1000
  4981.     Add PESONETTOP(0),-PESONETTOP(A)
  4982.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4983.     Print "Hai deciso di lasciare ";NOMEP$(A);
  4984.     Proc _ASPETTA : Exit 
  4985.    End If 
  4986.   Next A
  4987.  End If 
  4988. End If 
  4989. End Proc
  4990. Procedure LIMITI[NUMERO,LIMITEMINIMO,LIMITEMASSIMO]
  4991. '-> Limiti by Stefano Regattin 
  4992. 'i> 19 maggio 1996 
  4993. 'm> 12 giugno 1996 
  4994. '--------------------------------------------------------
  4995. 'La procedura equivale alle seguenti linee di programma: 
  4996. ' If NUMERO<LIMITEMINIMO Then NUMERO=LIMITEMINIMO
  4997. ' If NUMERO>LIMITEMASSIMO Then NUMERO=LIMITEMASSIMO
  4998. 'Se LIMITEMINIMO ï¿½ maggiore di LIMITEMASSIMO ne scambia i valori 
  4999. '----------------------------------------------------------------  
  5000. If LIMITEMINIMO>LIMITEMASSIMO Then Swap LIMITEMINIMO,LIMITEMASSIMO
  5001. NUMERO=Max(Min(NUMERO,LIMITEMASSIMO),LIMITEMINIMO)
  5002. End Proc[NUMERO]
  5003. Procedure LUOGO
  5004. Print "Regione>";NOMER$(REGIONEL(POSIZIONEP(0)))
  5005. Print "Luogo>";NOMEL$(POSIZIONEP(0))
  5006. Print "Direzioni visibili>";
  5007. For A=0 To 9
  5008.  DREZIONE=DREZIONEL(A,POSIZIONEP(0)) mod $10000
  5009.  If DREZIONE<$FFFF Then Print DREZIONEL$(A);" ";
  5010. Next A
  5011. Print 
  5012. End Proc
  5013. Procedure MESSAGGIO[MESSAGGIO$]
  5014. Locate 0,ULTIMALINEA
  5015. If CARATTEREMESSAGGIO=0
  5016. 'Ink 0,1 : Text 0,254,Space$(80) : Ink 1,0 
  5017.  Inverse On : Print Space$(80);
  5018. End If 
  5019. Hscroll 1
  5020. Add CARATTEREMESSAGGIO,1,1 To Len(MESSAGGIO$)
  5021. 'Ink 0,1 
  5022. Inverse On 
  5023. 'Text 631,ULTIMALINEA*8-1+7,Mid$(MESSAGGIO$,CARATTEREMESSAGGIO,1)
  5024. Print At(79,ULTIMALINEA);Mid$(MESSAGGIO$,CARATTEREMESSAGGIO,1);
  5025. 'Ink 1,0 
  5026. Inverse Off 
  5027. Wait 5
  5028. End Proc
  5029. Procedure M0DCATEGORIADEGLIOGGETTI
  5030. Cls 
  5031. Print "Nome singolare della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMESCO$(CATEGORIADEGLIOGGETTI)
  5032. Locate 0,ULTIMALINEA : Input "Nuovo nome singolare della categoria degli oggetti>";NOMECATEGORIADEGLIOGGETTI$;
  5033. If NOMECATEGORIADEGLIOGGETTI$<>"" Then NOMESCO$(CATEGORIADEGLIOGGETTI)=NOMECATEGORIADEGLIOGGETTI$
  5034. Cls 
  5035. Print "Nome plurale della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMEPCO$(CATEGORIADEGLIOGGETTI)
  5036. Locate 0,ULTIMALINEA : Input "Nuovo nome plurale della categoria degli oggetti>";NOMECATEGORIADEGLIOGGETTI$;
  5037. If NOMECATEGORIADEGLIOGGETTI$<>"" Then NOMEPCO$(CATEGORIADEGLIOGGETTI)=NOMECATEGORIADEGLIOGGETTI$
  5038. Cls 
  5039. Print "Nome singolare del resto degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMESRO$(CATEGORIADEGLIOGGETTI)
  5040. Locate 0,ULTIMALINEA : Input "Nuovo nome singolare del resto degli oggetti>";NOMERESTODEGLIOGGETTI$;
  5041. If NOMERESTODEGLIOGGETTI$<>"" Then NOMESRO$(CATEGORIADEGLIOGGETTI)=NOMERESTODEGLIOGGETTI$
  5042. Cls 
  5043. Print "Nome plurale del resto degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMEPRO$(CATEGORIADEGLIOGGETTI)
  5044. Locate 0,ULTIMALINEA : Input "Nuovo nome plurale del resto degli oggetti>";NOMERESTODEGLIOGGETTI$;
  5045. If NOMERESTODEGLIOGGETTI$<>"" Then NOMEPRO$(CATEGORIADEGLIOGGETTI)=NOMERESTODEGLIOGGETTI$
  5046. Cls 
  5047. PESOOGGETTO=PESOCO(CATEGORIADEGLIOGGETTI)
  5048. Print "Peso della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";Str$(PESOOGGETTO)-" ";" ";
  5049. If PESOOGGETTO=1
  5050.  Print "grammo"
  5051. Else 
  5052.  Print "grammi"
  5053. End If 
  5054. Locate 0,ULTIMALINEA : Input "Nuovo peso della categoria degli oggetti in grammi>";PESOCATEGORIADEGLIOGGETTI$;
  5055. If PESOCATEGORIADEGLIOGGETTI$<>"" Then PESOCO(CATEGORIADEGLIOGGETTI)=Val(PESOCATEGORIADEGLIOGGETTI$)
  5056. Cls 
  5057. PESORESTOOGGETTO=PESORESTOCO(CATEGORIADEGLIOGGETTI)
  5058. Print "Peso della categoria dei resti degli oggetti";CATEGORIADEGLIOGGETTI;">";Str$(PESORESTOOGGETTO)-" ";" ";
  5059. If PESORESTOOGGETTO=1
  5060.  Print "grammo"
  5061. Else 
  5062.  Print "grammi"
  5063. End If 
  5064. Locate 0,ULTIMALINEA : Input "Nuovo peso della categoria dei resti degli oggetti in grammi>";PESOCATEGORIADEIRESTIDEGLIOGGETTI$;
  5065. If PESOCATEGORIADEIRESTIDEGLIOGGETTI$<>"" Then PESORESTOCO(CATEGORIADEGLIOGGETTI)=Val(PESOCATEGORIADEIRESTIDEGLIOGGETTI$)
  5066. Curs Off 
  5067. Cls 
  5068. Print "Nome della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";
  5069. Print NOMESCO$(CATEGORIADEGLIOGGETTI)
  5070. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano commestibili (s/n) ?>";
  5071. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5072. If RISPOSTA$="s"
  5073.  Bset 0,TIPOCO(CATEGORIADEGLIOGGETTI)
  5074. Else 
  5075.  Bclr 0,TIPOCO(CATEGORIADEGLIOGGETTI)
  5076. End If 
  5077. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano contenitori (s/n) ?>";
  5078. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5079. If RISPOSTA$="s"
  5080.  Bset 1,TIPOCO(CATEGORIADEGLIOGGETTI)
  5081. Else 
  5082.  If Btst(1,TIPOCO(CATEGORIADEGLIOGGETTI))=True
  5083.   For A=0 To NUMEROO
  5084.    For B=0 To NUMEROO
  5085.     If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False and A<>B
  5086.      POSIZIONEO(B)=POSIZIONEO(A)
  5087.     End If 
  5088.    Next B
  5089.    For B=0 To NUMEROP
  5090.     If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  5091.      POSIZIONEP(B)=POSIZIONEO(A)
  5092.     End If 
  5093.    Next B
  5094.   Next A
  5095.  End If 
  5096.  Bclr 1,TIPOCO(CATEGORIADEGLIOGGETTI)
  5097. End If 
  5098. Locate 0,ULTIMALINEA : Cline 
  5099. Print "Vuoi che gli oggetti siano difensivi (s/n) ?>";
  5100. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5101. If RISPOSTA$="s"
  5102.  Bset 2,TIPOCO(CATEGORIADEGLIOGGETTI)
  5103. Else 
  5104.  Bclr 2,TIPOCO(CATEGORIADEGLIOGGETTI)
  5105. End If 
  5106. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano leggibili (s/n) ?>";
  5107. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5108. If RISPOSTA$="s"
  5109.  Bset 3,TIPOCO(CATEGORIADEGLIOGGETTI)
  5110. Else 
  5111.  Bclr 3,TIPOCO(CATEGORIADEGLIOGGETTI)
  5112. End If 
  5113. Locate 0,ULTIMALINEA : Cline 
  5114. Print "Vuoi che gli oggetti siano liquidi o solidi (l/s) ?>";
  5115. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5116. If RISPOSTA$="l"
  5117.  Bset 4,TIPOCO(CATEGORIADEGLIOGGETTI)
  5118. Else 
  5119.  Bclr 4,TIPOCO(CATEGORIADEGLIOGGETTI)
  5120. End If 
  5121. Locate 0,ULTIMALINEA : Cline 
  5122. Print "Vuoi che gli oggetti siano magici (s/n) ?>";
  5123. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5124. If RISPOSTA$="s"
  5125.  Bset 5,TIPOCO(CATEGORIADEGLIOGGETTI)
  5126. Else 
  5127.  Bclr 5,TIPOCO(CATEGORIADEGLIOGGETTI)
  5128. End If 
  5129. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano offensivi (s/n) ?>";
  5130. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5131. If RISPOSTA$="s"
  5132.  Bset 6,TIPOCO(CATEGORIADEGLIOGGETTI)
  5133. Else 
  5134.  Bclr 6,TIPOCO(CATEGORIADEGLIOGGETTI)
  5135. End If 
  5136.  For A=0 To NUMEROO
  5137.   If POSIZIONEO(A)<0
  5138.    NONRESIDENTI=True
  5139.   End If 
  5140.  Next A
  5141. If NONRESIDENTI=True
  5142.  Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano residenti (s/n) ?>";
  5143.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5144.  If RISPOSTA$="s"
  5145.   Bset 7,TIPOCO(CATEGORIADEGLIOGGETTI)
  5146.  Else 
  5147.   Bclr 7,TIPOCO(CATEGORIADEGLIOGGETTI)
  5148.  End If 
  5149. End If 
  5150. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano trasferibili (s/n) ?>";
  5151. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5152. If RISPOSTA$="s"
  5153.  Bset 8,TIPOCO(CATEGORIADEGLIOGGETTI)
  5154. Else 
  5155.  Bclr 8,TIPOCO(CATEGORIADEGLIOGGETTI)
  5156. End If 
  5157. Locate 0,ULTIMALINEA : Cline 
  5158. Print "Vuoi che gli oggetti siano trasparenti (s/n) ?>";
  5159. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5160. If RISPOSTA$="s"
  5161.  Bset 9,TIPOCO(CATEGORIADEGLIOGGETTI)
  5162. Else 
  5163.  Bclr 9,TIPOCO(CATEGORIADEGLIOGGETTI)
  5164. End If 
  5165. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano vincolati ad un oggetto (s/n) ?>";
  5166. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5167. If RISPOSTA$="s"
  5168.  Repeat 
  5169.   Cls 
  5170.   Print "Nome della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMESCO$(CATEGORIADEGLIOGGETTI)
  5171.   Print At(0,ULTIMALINEA-1);"Scegli l'oggetto vincolante>";NOMESCO$(CO)
  5172.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta oggetto vincolante Spazio conferma",ULTIMALINEA]
  5173.   Repeat 
  5174.    TASTOPREMUTO$=Inkey$
  5175.   Until TASTOPREMUTO$<>""
  5176.   If TASTOPREMUTO$=Cup$ : Add CO,-1,0 To NUMEROCO : End If 
  5177.   If TASTOPREMUTO$=Cdown$ : Add CO,1,0 To NUMEROCO : End If 
  5178.  Until TASTOPREMUTO$=" "
  5179.  PARATIPOCO(CATEGORIADEGLIOGGETTI)=CO
  5180.  Bset 10,TIPOCO(CATEGORIADEGLIOGGETTI)
  5181. Else 
  5182.  Bclr 10,TIPOCO(CATEGORIADEGLIOGGETTI)
  5183.  Cls 
  5184.  Print "Parametro della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";Str$(PARATIPOCO(CATEGORIADEGLIOGGETTI))-" "
  5185.  Locate 0,ULTIMALINEA : Input "Nuovo parametro della categoria degli oggetti>";PARACATEGORIADEGLIOGGETTI$;
  5186.  If PARACATEGORIADEGLIOGGETTI$<>""
  5187.   PARATIPOCO(CATEGORIADEGLIOGGETTI)=Val(PARACATEGORIADEGLIOGGETTI$)
  5188.  End If 
  5189. End If 
  5190. Curs Off 
  5191. End Proc
  5192. Procedure M0DDESCRIZIONE[DESCRIZIONE$]
  5193. INIZIODESCRIZIONE=1
  5194. FINEDESCRIZIONE=Min(Len(DESCRIZIONE$),32*80-1)
  5195. Curs Off 
  5196. Repeat 
  5197.  Cls 
  5198.  For DESCRIZIONE=INIZIODESCRIZIONE To FINEDESCRIZIONE
  5199.   Print Mid$(DESCRIZIONE$,DESCRIZIONE,1);
  5200.   Exit If FINEDESCRIZIONE-INIZIODESCRIZIONE=32*80-2
  5201.   Exit If DESCRIZIONE=Len(DESCRIZIONE$)
  5202.  Next DESCRIZIONE
  5203.  Wait Vbl 
  5204.  POSIZIONEY=DESCRIZIONE/80
  5205.  Curs On 
  5206.  Repeat 
  5207.   If RICORDA=True
  5208.    DISTANZAY=Y Curs-RICORDAY
  5209.    Add POSIZIONEY,-DISTANZAY
  5210.    Locate RICORDAX,RICORDAY : RICORDA=False
  5211.   End If 
  5212.   BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5213.   BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5214.   Repeat 
  5215.    TASTO$=Inkey$
  5216.    CODICESCANSIONE=Scancode
  5217.   Until TASTO$<>""
  5218.   If Asc(TASTO$)=0
  5219.    If CODICESCANSIONE=70 and Len(BLOCCOSUCCESSIVO$)>0
  5220.     BLOCCOSUCCESSIVO$=Right$(BLOCCOSUCCESSIVO$,Len(BLOCCOSUCCESSIVO$)-1)
  5221.     DESCRIZIONE$=BLOCCOPRECEDENTE$+BLOCCOSUCCESSIVO$
  5222.     RICORDAX=X Curs : RICORDAY=Y Curs : RICORDA=True
  5223.     INIZIODESCRIZIONE=Max(POSIZIONEY*80-RICORDAY*80,1)
  5224.     FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5225.     Exit 
  5226.    End If 
  5227.   Else 
  5228.    If TASTO$=Chr$(8)
  5229.     BLOCCOPRECEDENTE$=Left$(BLOCCOPRECEDENTE$,Len(BLOCCOPRECEDENTE$)-1)
  5230.     DESCRIZIONE$=BLOCCOPRECEDENTE$+BLOCCOSUCCESSIVO$
  5231.     RICORDAX=X Curs-1 : RICORDAY=Y Curs
  5232.     If RICORDAX=-1
  5233.      RICORDAX=79 : Dec RICORDAY
  5234.      If RICORDAY=-1
  5235.       If POSIZIONEY>0
  5236.        Vscroll 1 : RICORDAX=0 : RICORDAY=0 : Dec POSIZIONEY
  5237.        INIZIODESCRIZIONE=POSIZIONEY*80-79 : FINEDESCRIZIONE=POSIZIONEY*80
  5238.       Else 
  5239.        RICORDAX=0 : RICORDAY=0
  5240.       End If 
  5241.      End If 
  5242.     End If 
  5243.     XG=X Graphic(RICORDAX) : YG=Y Graphic(RICORDAY)
  5244.     Ink 0 : Bar XG,YG To XG+7,YG+7 : Ink 1
  5245.     RICORDA=True
  5246.     Exit 
  5247.    Else If TASTO$=Cup$
  5248.     If Y Curs=0
  5249.      If POSIZIONEY>31
  5250.       Vscroll 1 : Dec POSIZIONEY
  5251.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5252.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5253.       RICORDAX=0 : RICORDAY=0 : RICORDA=True
  5254.       INIZIODESCRIZIONE=POSIZIONEY*80-79 : FINEDESCRIZIONE=POSIZIONEY*80
  5255.       Exit 
  5256.      End If 
  5257.     Else 
  5258.      Cmove ,-1 : Dec POSIZIONEY
  5259.      BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5260.      BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5261.     End If 
  5262.    Else If TASTO$=Cdown$
  5263.     If Y Curs=32
  5264.      If Len(BLOCCOSUCCESSIVO$)>79
  5265.       Vscroll 3 : Inc POSIZIONEY
  5266.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5267.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5268.      End If 
  5269.     Else 
  5270.      If Len(BLOCCOSUCCESSIVO$)>79
  5271.       Cmove ,1 : Inc POSIZIONEY
  5272.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5273.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5274.      End If 
  5275.     End If 
  5276.    Else If TASTO$=Cleft$
  5277.     If X Curs=0
  5278.      If Y Curs=0
  5279.       If POSIZIONEY>0
  5280.        Vscroll 1 : Dec POSIZIONEY
  5281.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5282.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5283.       End If 
  5284.      Else 
  5285.       Locate 79, : Cmove ,-1 : Dec POSIZIONEY
  5286.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5287.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5288.      End If 
  5289.     Else 
  5290.      Cmove -1,
  5291.      BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5292.      BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5293.     End If 
  5294.    Else If TASTO$=Cright$
  5295.     If X Curs=79
  5296.      If Y Curs=32
  5297.       If Len(BLOCCOSUCCESSIVO$)>0
  5298.        Vscroll 3 : Inc POSIZIONEY
  5299.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5300.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5301.       End If 
  5302.      Else 
  5303.       Locate 0, : Cmove ,1 : Inc POSIZIONEY
  5304.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5305.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5306.      End If 
  5307.     Else 
  5308.      If Len(BLOCCOSUCCESSIVO$)>0
  5309.       Cmove 1,
  5310.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5311.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5312.      End If 
  5313.     End If 
  5314.    Else 
  5315.     CARATTERIVALIDI$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz������!',;.:1234567890 "
  5316.     If Instr(CARATTERIVALIDI$,TASTO$)>0
  5317.      DESCRIZIONE$=BLOCCOPRECEDENTE$+TASTO$+BLOCCOSUCCESSIVO$
  5318.      If Len(BLOCCOSUCCESSIVO$)>0
  5319.       RICORDAX=X Curs : RICORDAY=Y Curs : RICORDA=True
  5320.       INIZIODESCRIZIONE=Max(POSIZIONEY*80-RICORDAX-RICORDAY*80,1)
  5321.       FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5322.       Exit 
  5323.      Else 
  5324.       ULTIMACOLONNA=X Curs
  5325.       Print TASTO$;
  5326.       If ULTIMACOLONNA=79
  5327.        Inc POSIZIONEY
  5328.        If Y Curs=31
  5329.         Vscroll 3
  5330.         RICORDAX=X Curs : RICORDAY=Y Curs : RICORDA=True
  5331.         INIZIODESCRIZIONE=Max(POSIZIONEY*80-79,1)
  5332.         FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5333.         Exit 
  5334.        End If 
  5335.       End If 
  5336.      End If 
  5337.     End If 
  5338.    End If 
  5339.   End If 
  5340.  Until TASTO$=Chr$(27)
  5341. Until TASTO$=Chr$(27)
  5342. Curs Off 
  5343. End Proc[DESCRIZIONE$]
  5344. Procedure M0DEDIFICIO
  5345. Cls 
  5346. Print "Nome dell'edificio";EDIFICIO;">";NOMEE$(EDIFICIO)
  5347. Locate 0,ULTIMALINEA
  5348. Input "Nuovo nome dell'edificio"+Str$(EDIFICIO)+">";NOMEEDIFICIO$;
  5349. If NOMEEDIFICIO$<>"" Then NOMEE$(EDIFICIO)=NOMEEDIFICIO$
  5350. Cls 
  5351. Print "Posizione dell'edificio";EDIFICIO;">luogo";POSIZIONEE(EDIFICIO);" nome>";NOMEL$(POSIZIONEE(EDIFICIO))
  5352. Locate 0,ULTIMALINEA
  5353. Input "Nuova posizione dell'edificio"+Str$(EDIFICIO)+" (0-"+Str$(NUMEROL)-" "+")>";NUOVAPOSIZIONEEDIFICIO$;
  5354. If NUOVAPOSIZIONEEDIFICIO$<>""
  5355.  NUOVAPOSIZIONEEDIFICIO=Val(NUOVAPOSIZIONEEDIFICIO$)
  5356.  Proc LIMITI[NUOVAPOSIZIONEEDIFICIO,0,NUMEROL] : NUOVAPOSIZIONEEDIFICIO=Param
  5357.  POSIZIONEE(EDIFICIO)=NUOVAPOSIZIONEEDIFICIO
  5358. End If 
  5359. Cls 
  5360. Print "Numero delle stanze dell'edificio";EDIFICIO;">";NUMEROS(EDIFICIO)+1
  5361. Locate 0,ULTIMALINEA
  5362. Input "Nuovo numero delle stanze dell'edificio"+Str$(EDIFICIO)+" (1-"+Str$(NUMMASS+1)-" "+")>";NUMEROSTANZE$;
  5363. If NUMEROSTANZE$<>""
  5364.  NUMEROSTANZE=Val(NUMEROSTANZE$) : Dec NUMEROSTANZE
  5365.  Proc LIMITI[NUMEROSTANZE,0,NUMMASS] : NUMEROSTANZE=Param
  5366.  NUMEROS(EDIFICIO)=NUMEROSTANZE
  5367. End If 
  5368. Curs Off 
  5369. End Proc
  5370. Procedure M0DIFICA
  5371. M0DIFICA=True
  5372. Fade 5,$660
  5373. Cls 
  5374. Proc TIC["premi C per modificare una categoria degli oggetti",ULTIMALINEA-12]
  5375. Proc TIC["premi D per modificare una descrizione",ULTIMALINEA-11]
  5376. Proc TIC["premi E per modificare un'edificio",ULTIMALINEA-10]
  5377. Proc TIC["premi F per modificare lo scopo del gioco",ULTIMALINEA-9]
  5378. Proc TIC["premi L per modificare un luogo",ULTIMALINEA-8]
  5379. Proc TIC["premi M per creare una mappa dei luoghi/delle stanze",ULTIMALINEA-7]
  5380. Proc TIC["premi N per modificare un numero",ULTIMALINEA-6]
  5381. Proc TIC["premi O per modificare un oggetto",ULTIMALINEA-5]
  5382. Proc TIC["premi P per modificare un personaggio",ULTIMALINEA-4]
  5383. Proc TIC["premi R per modificare una regione",ULTIMALINEA-3]
  5384. Proc TIC["premi S per modificare una stanza",ULTIMALINEA-2]
  5385. Proc TIC["premi X per attivare/disattivare la musica",ULTIMALINEA-1]
  5386. Proc TIC["premi Z per attivare/disattivare i nemici",ULTIMALINEA]
  5387. SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  5388. If SCELTA$="c" Then Proc M0DIFICACATEGORIADEGLIOGGETTI
  5389. If SCELTA$="d" Then Proc M0DIFICADESCRIZIONE
  5390. If SCELTA$="e" Then Proc M0DIFICAEDIFICIO
  5391. If SCELTA$="f" Then Proc M0DIFICASCOPODELGIOCO
  5392. If SCELTA$="l" Then Proc M0DIFICALUOGO
  5393. If SCELTA$="m" Then Proc CREAMAPPA
  5394. If SCELTA$="n" Then Proc M0DIFICANUMERO
  5395. If SCELTA$="o" Then Proc M0DIFICAOGGETTO
  5396. If SCELTA$="p" Then Proc M0DIFICAPERSONAGGIO
  5397. If SCELTA$="r" Then Proc M0DIFICAREGIONE
  5398. If SCELTA$="s" Then Proc M0DIFICASTANZA
  5399. If SCELTA$="x"
  5400.  _MUSICA= Not _MUSICA
  5401.  If _MUSICA=True
  5402.   Proc SUONAUNMODULO[FILEREQUESTERMUSICA]
  5403.   If FILEREQUESTERMUSICA=True and Param$=""
  5404.    _MUSICA=False
  5405.   End If 
  5406.  Else 
  5407.   Track Loop Of : Track Stop 
  5408.  End If 
  5409. End If 
  5410. If SCELTA$="z" Then ANEMICI= Not ANEMICI
  5411. Fade 5,$60
  5412. M0DIFICA=False
  5413. End Proc
  5414. Procedure M0DIFICACATEGORIADEGLIOGGETTI
  5415. CATEGORIADEGLIOGGETTI=0
  5416. Repeat 
  5417.  Proc MOSTRACATEGORIADEGLIOGGETTI
  5418.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta categoria M modifica Esc esci",ULTIMALINEA]
  5419.  Repeat 
  5420.   TASTOPREMUTO$=Inkey$
  5421.  Until TASTOPREMUTO$<>""
  5422.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5423.  If TASTOPREMUTO$="m" Then Proc M0DCATEGORIADEGLIOGGETTI
  5424.  If TASTOPREMUTO$=Cup$ Then Add CATEGORIADEGLIOGGETTI,-1,0 To NUMEROCO
  5425.  If TASTOPREMUTO$=Cdown$ Then Add CATEGORIADEGLIOGGETTI,1,0 To NUMEROCO
  5426. Until TASTOPREMUTO$=Chr$(27)
  5427. CATEGORIADEGLIOGGETTI=0
  5428. End Proc
  5429. Procedure M0DIFICADESCRIZIONE
  5430. Shared SCELTA$
  5431. Cls 
  5432. Proc TIC["premi A per modificare il prologo",ULTIMALINEA-7]
  5433. Proc TIC["premi C per modificare la descrizione della categoria degli oggetti",ULTIMALINEA-6]
  5434. Proc TIC["premi E per modificare la descrizione dell'edificio",ULTIMALINEA-5]
  5435. Proc TIC["premi L per modificare la descrizione del luogo",ULTIMALINEA-4]
  5436. Proc TIC["premi P per modificare la descrizione del personaggio",ULTIMALINEA-3]
  5437. Proc TIC["premi S per modificare la descrizione della stanza",ULTIMALINEA-2]
  5438. Proc TIC["premi Z per modificare l'epilogo",ULTIMALINEA-1]
  5439. Proc TIC["quando sei nell'editor premi Esc per finire",ULTIMALINEA]
  5440. SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  5441. If SCELTA$="a" Then DESCRIZIONE$=PROLOGO$ : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5442. If SCELTA$="c" Then DESCRIZIONE$=DESCRIZIONECO$(CATEGORIADEGLIOGGETTI) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5443. If SCELTA$="e" Then DESCRIZIONE$=DESCRIZIONEE$(EDIFICIO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5444. If SCELTA$="l" Then DESCRIZIONE$=DESCRIZIONEL$(LUOGO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5445. If SCELTA$="p" Then DESCRIZIONE$=DESCRIZIONEP$(PERSONAGGIO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5446. If SCELTA$="s" Then DESCRIZIONE$=DESCRIZIONES$(STANZA,EDIFICIO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5447. If SCELTA$="z" Then DESCRIZIONE$=EPILOGO$ : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5448.  
  5449. If SCELTA$="a" Then PROLOGO$=Param$
  5450. If SCELTA$="c" Then DESCRIZIONECO$(CATEGORIADEGLIOGGETTI)=Param$
  5451. If SCELTA$="e" Then DESCRIZIONEE$(EDIFICIO)=Param$
  5452. If SCELTA$="l" Then DESCRIZIONEL$(LUOGO)=Param$
  5453. If SCELTA$="p" Then DESCRIZIONEP$(PERSONAGGIO)=Param$
  5454. If SCELTA$="s" Then DESCRIZIONES$(STANZA,EDIFICIO)=Param$
  5455. If SCELTA$="z" Then EPILOGO$=Param$
  5456. End Proc
  5457. Procedure M0DIFICAEDIFICIO
  5458. If NUMEROE=-1 Then Pop Proc
  5459. EDIFICIO=0
  5460. Repeat 
  5461.  Proc MOSTRAEDIFICIO
  5462.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta edificio M modifica Esc esci",ULTIMALINEA]
  5463.  Repeat 
  5464.   TASTOPREMUTO$=Inkey$
  5465.  Until TASTOPREMUTO$<>""
  5466.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5467.  If TASTOPREMUTO$="m" Then Proc M0DEDIFICIO
  5468.  If TASTOPREMUTO$=Cup$ Then Add EDIFICIO,-1,0 To NUMEROE
  5469.  If TASTOPREMUTO$=Cdown$ Then Add EDIFICIO,1,0 To NUMEROE
  5470. Until TASTOPREMUTO$=Chr$(27)
  5471. LUOGO=0
  5472. End Proc
  5473. Procedure M0DIFICALUOGO
  5474. LUOGO=0
  5475. Repeat 
  5476.  Proc MOSTRALUOGO
  5477.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta luogo M modifica Esc esci",ULTIMALINEA]
  5478.  Repeat 
  5479.   TASTOPREMUTO$=Inkey$
  5480.  Until TASTOPREMUTO$<>""
  5481.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5482.  If TASTOPREMUTO$="m" Then Proc M0DLUOGO
  5483.  If TASTOPREMUTO$=Cup$ Then Add LUOGO,-1,0 To NUMEROL
  5484.  If TASTOPREMUTO$=Cdown$ Then Add LUOGO,1,0 To NUMEROL
  5485. Until TASTOPREMUTO$=Chr$(27)
  5486. LUOGO=0
  5487. End Proc
  5488. Procedure M0DIFICAOGGETTO
  5489. OGGETTO=0
  5490. Repeat 
  5491.  Proc MOSTRAOGGETTO
  5492.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta oggetto M modifica Esc esci",ULTIMALINEA]
  5493.  Repeat 
  5494.   TASTOPREMUTO$=Inkey$
  5495.  Until TASTOPREMUTO$<>""
  5496.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5497.  If TASTOPREMUTO$="m" Then Proc M0DOGGETTO
  5498.  If TASTOPREMUTO$=Cup$ Then Add OGGETTO,-1,0 To NUMEROO
  5499.  If TASTOPREMUTO$=Cdown$ Then Add OGGETTO,1,0 To NUMEROO
  5500. Until TASTOPREMUTO$=Chr$(27)
  5501. OGGETTO=0
  5502. End Proc
  5503. Procedure M0DIFICANUMERO
  5504. Cls 
  5505. Proc TIC["premi C per modificare il numero delle categorie degli oggetti",ULTIMALINEA-6]
  5506. Proc TIC["premi E per modificare il numero degli edifici",ULTIMALINEA-5]
  5507. Proc TIC["premi L per modificare il numero dei luoghi",ULTIMALINEA-4]
  5508. Proc TIC["premi O per modificare il numero degli oggetti",ULTIMALINEA-3]
  5509. Proc TIC["premi P per modificare il numero dei personaggi",ULTIMALINEA-2]
  5510. Proc TIC["premi R per modificare il numero delle regioni",ULTIMALINEA-1]
  5511. Proc TIC["premi S per modificare il numero delle stanze",ULTIMALINEA]
  5512. SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  5513. If SCELTA$="c" Then Proc M0DNUMCO
  5514. If SCELTA$="e" Then Proc M0DNUME
  5515. If SCELTA$="l" Then Proc M0DNUML
  5516. If SCELTA$="o" Then Proc M0DNUMO
  5517. If SCELTA$="p" Then Proc M0DNUMP
  5518. If SCELTA$="r" Then Proc M0DNUMR
  5519. If SCELTA$="s" Then Proc M0DNUMS
  5520. End Proc
  5521. Procedure M0DIFICAPERSONAGGIO
  5522. PERSONAGGIO=0
  5523. Repeat 
  5524.  Proc MOSTRAPERSONAGGIO
  5525.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta personaggio M modifica Esc esci",ULTIMALINEA]
  5526.  Repeat 
  5527.   TASTOPREMUTO$=Inkey$
  5528.  Until TASTOPREMUTO$<>""
  5529.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5530.  If TASTOPREMUTO$="m" Then Proc M0DPERSONAGGIO
  5531.  If TASTOPREMUTO$=Cup$ Then Add PERSONAGGIO,-1,0 To NUMEROP
  5532.  If TASTOPREMUTO$=Cdown$ Then Add PERSONAGGIO,1,0 To NUMEROP
  5533. Until TASTOPREMUTO$=Chr$(27)
  5534. PERSONAGGIO=0
  5535. End Proc
  5536. Procedure M0DIFICAREGIONE
  5537. REGIONE=0
  5538. Repeat 
  5539.  Proc MOSTRAREGIONE
  5540.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta regione M modifica Esc esci",ULTIMALINEA]
  5541.  Repeat 
  5542.   TASTOPREMUTO$=Inkey$
  5543.  Until TASTOPREMUTO$<>""
  5544.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5545.  If TASTOPREMUTO$="m" Then Proc M0DREGIONE
  5546.  If TASTOPREMUTO$=Cup$ Then Add REGIONE,-1,0 To NUMEROR
  5547.  If TASTOPREMUTO$=Cdown$ Then Add REGIONE,1,0 To NUMEROR
  5548. Until TASTOPREMUTO$=Chr$(27)
  5549. REGIONE=0
  5550. End Proc
  5551. Procedure M0DIFICASCOPODELGIOCO
  5552. VECCHIOSCOPODELGIOCO=AZIONEP(7,0)
  5553. SCOPODELGIOCO=VECCHIOSCOPODELGIOCO
  5554. SCOPOMODIFICATO=-1
  5555. Repeat 
  5556.  Proc SCOPODELGIOCO[True]
  5557.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta scopo del gioco M modifica Esc esci",ULTIMALINEA]
  5558.  Repeat 
  5559.   TASTOPREMUTO$=Inkey$
  5560.  Until TASTOPREMUTO$<>""
  5561.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5562.  If TASTOPREMUTO$="m" Then Proc SCOPODELGIOCO[SCOPODELGIOCO] : SCOPOMODIFICATO=SCOPODELGIOCO
  5563.  If TASTOPREMUTO$=Cup$ Then Add SCOPODELGIOCO,-1,0 To 18
  5564.  If TASTOPREMUTO$=Cdown$ Then Add SCOPODELGIOCO,1,0 To 18
  5565.  AZIONEP(7,0)=SCOPODELGIOCO
  5566. Until TASTOPREMUTO$=Chr$(27)
  5567. If SCOPOMODIFICATO=-1
  5568.  AZIONEP(7,0)=VECCHIOSCOPODELGIOCO
  5569. Else 
  5570.  AZIONEP(7,0)=SCOPOMODIFICATO
  5571. End If 
  5572. FINEA(7,0)=False
  5573. End Proc
  5574. Procedure M0DIFICASTANZA
  5575. If NUMEROE=-1 Then Pop Proc
  5576. STANZA=0
  5577. Repeat 
  5578.  Proc MOSTRASTANZA
  5579.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta stanza M modifica Esc esci",ULTIMALINEA]
  5580.  Repeat 
  5581.   TASTOPREMUTO$=Inkey$
  5582.  Until TASTOPREMUTO$<>""
  5583.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5584.  If TASTOPREMUTO$="m" Then Proc M0DSTANZA
  5585.  If TASTOPREMUTO$=Cup$ Then Add STANZA,-1,0 To NUMEROS(EDIFICIO)
  5586.  If TASTOPREMUTO$=Cdown$ Then Add STANZA,1,0 To NUMEROS(EDIFICIO)
  5587. Until TASTOPREMUTO$=Chr$(27)
  5588. STANZA=0
  5589. End Proc
  5590. Procedure M0DLUOGO
  5591. Cls 
  5592. Print "Nome del luogo";LUOGO;">";NOMEL$(LUOGO)
  5593. Locate 0,ULTIMALINEA
  5594. Input "Nuovo nome del luogo"+Str$(LUOGO)+">";NOMELUOGO$;
  5595. If NOMELUOGO$<>"" Then NOMEL$(LUOGO)=NOMELUOGO$
  5596. DREZIONE=DREZIONEL(0,LUOGO)
  5597. Cls 
  5598. Print "Direzione Nord del luogo";LUOGO;">";
  5599. E=DREZIONE/$10000
  5600. If E>0
  5601.  S=DREZIONE mod $10000
  5602.  Print "edificio";E;" stanza";S
  5603. Else 
  5604.  If DREZIONE<$FFFF
  5605.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5606.  Else 
  5607.   Print " nessuno"
  5608.  End If 
  5609. End If 
  5610. Print At(0,ULTIMALINEA-1);"Direzione Nord: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5611. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5612. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5613. If NUMEROLUOGO$<>""
  5614.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5615.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5616.   If NUMEROEDIFICIO$<>""
  5617.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5618.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5619.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5620.    If NUMEROSTANZA$<>""
  5621.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5622.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5623.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5624.    End If 
  5625.   End If 
  5626.  Else 
  5627.   If NUMEROLUOGO$="n"
  5628.    DREZIONE=$FFFF
  5629.   Else 
  5630.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5631.   End If 
  5632.  End If 
  5633.  DREZIONEL(0,LUOGO)=DREZIONE
  5634. End If 
  5635. DREZIONE=DREZIONEL(1,LUOGO)
  5636. Cls 
  5637. Print "Direzione NordEst del luogo";LUOGO;">";
  5638. E=DREZIONE/$10000
  5639. If E>0
  5640.  S=DREZIONE mod $10000
  5641.  Print "edificio";E;" stanza";S
  5642. Else 
  5643.  If DREZIONE<$FFFF
  5644.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5645.  Else 
  5646.   Print " nessuno"
  5647.  End If 
  5648. End If 
  5649. Print At(0,ULTIMALINEA-1);"Direzione NordEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5650. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5651. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5652. If NUMEROLUOGO$<>""
  5653.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5654.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5655.   If NUMEROEDIFICIO$<>""
  5656.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5657.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5658.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5659.    If NUMEROSTANZA$<>""
  5660.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5661.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5662.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5663.    End If 
  5664.   End If 
  5665.  Else 
  5666.   If NUMEROLUOGO$="n"
  5667.    DREZIONE=$FFFF
  5668.   Else 
  5669.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5670.   End If 
  5671.  End If 
  5672.  DREZIONEL(1,LUOGO)=DREZIONE
  5673. End If 
  5674. DREZIONE=DREZIONEL(2,LUOGO)
  5675. Cls 
  5676. Print "Direzione Est del luogo";LUOGO;">";
  5677. E=DREZIONE/$10000
  5678. If E>0
  5679.  S=DREZIONE mod $10000
  5680.  Print "edificio";E;" stanza";S
  5681. Else 
  5682.  If DREZIONE<$FFFF
  5683.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5684.  Else 
  5685.   Print " nessuno"
  5686.  End If 
  5687. End If 
  5688. Print At(0,ULTIMALINEA-1);"Direzione Est: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5689. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5690. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5691. If NUMEROLUOGO$<>""
  5692.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5693.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5694.   If NUMEROEDIFICIO$<>""
  5695.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5696.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5697.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5698.    If NUMEROSTANZA$<>""
  5699.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5700.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5701.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5702.    End If 
  5703.   End If 
  5704.  Else 
  5705.   If NUMEROLUOGO$="n"
  5706.    DREZIONE=$FFFF
  5707.   Else 
  5708.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5709.   End If 
  5710.  End If 
  5711.  DREZIONEL(2,LUOGO)=DREZIONE
  5712. End If 
  5713. DREZIONE=DREZIONEL(3,LUOGO)
  5714. Cls 
  5715. Print "Direzione SudEst del luogo";LUOGO;">";
  5716. E=DREZIONE/$10000
  5717. If E>0
  5718.  S=DREZIONE mod $10000
  5719.  Print "edificio";E;" stanza";S
  5720. Else 
  5721.  If DREZIONE<$FFFF
  5722.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5723.  Else 
  5724.   Print " nessuno"
  5725.  End If 
  5726. End If 
  5727. Print At(0,ULTIMALINEA-1);"Direzione SudEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5728. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5729. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5730. If NUMEROLUOGO$<>""
  5731.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5732.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5733.   If NUMEROEDIFICIO$<>""
  5734.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5735.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5736.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5737.    If NUMEROSTANZA$<>""
  5738.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5739.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5740.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5741.    End If 
  5742.   End If 
  5743.  Else 
  5744.   If NUMEROLUOGO$="n"
  5745.    DREZIONE=$FFFF
  5746.   Else 
  5747.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5748.   End If 
  5749.  End If 
  5750.  DREZIONEL(3,LUOGO)=DREZIONE
  5751. End If 
  5752. DREZIONE=DREZIONEL(4,LUOGO)
  5753. Cls 
  5754. Print "Direzione Sud del luogo";LUOGO;">";
  5755. E=DREZIONE/$10000
  5756. If E>0
  5757.  S=DREZIONE mod $10000
  5758.  Print "edificio";E;" stanza";S
  5759. Else 
  5760.  If DREZIONE<$FFFF
  5761.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5762.  Else 
  5763.   Print " nessuno"
  5764.  End If 
  5765. End If 
  5766. Print At(0,ULTIMALINEA-1);"Direzione Sud: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5767. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5768. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5769. If NUMEROLUOGO$<>""
  5770.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5771.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5772.   If NUMEROEDIFICIO$<>""
  5773.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5774.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5775.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5776.    If NUMEROSTANZA$<>""
  5777.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5778.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5779.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5780.    End If 
  5781.   End If 
  5782.  Else 
  5783.   If NUMEROLUOGO$="n"
  5784.    DREZIONE=$FFFF
  5785.   Else 
  5786.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5787.   End If 
  5788.  End If 
  5789.  DREZIONEL(4,LUOGO)=DREZIONE
  5790. End If 
  5791. DREZIONE=DREZIONEL(5,LUOGO)
  5792. Cls 
  5793. Print "Direzione SudOvest del luogo";LUOGO;">";
  5794. E=DREZIONE/$10000
  5795. If E>0
  5796.  S=DREZIONE mod $10000
  5797.  Print "edificio";E;" stanza";S
  5798. Else 
  5799.  If DREZIONE<$FFFF
  5800.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5801.  Else 
  5802.   Print " nessuno"
  5803.  End If 
  5804. End If 
  5805. Print At(0,ULTIMALINEA-1);"Direzione SudOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5806. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5807. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5808. If NUMEROLUOGO$<>""
  5809.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5810.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5811.   If NUMEROEDIFICIO$<>""
  5812.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5813.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5814.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5815.    If NUMEROSTANZA$<>""
  5816.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5817.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5818.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5819.    End If 
  5820.   End If 
  5821.  Else 
  5822.   If NUMEROLUOGO$="n"
  5823.    DREZIONE=$FFFF
  5824.   Else 
  5825.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5826.   End If 
  5827.  End If 
  5828.  DREZIONEL(5,LUOGO)=DREZIONE
  5829. End If 
  5830. DREZIONE=DREZIONEL(6,LUOGO)
  5831. Cls 
  5832. Print "Direzione Ovest del luogo";LUOGO;">";
  5833. E=DREZIONE/$10000
  5834. If E>0
  5835.  S=DREZIONE mod $10000
  5836.  Print "edificio";E;" stanza";S
  5837. Else 
  5838.  If DREZIONE<$FFFF
  5839.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5840.  Else 
  5841.   Print " nessuno"
  5842.  End If 
  5843. End If 
  5844. Print At(0,ULTIMALINEA-1);"Direzione Ovest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5845. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5846. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5847. If NUMEROLUOGO$<>""
  5848.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5849.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5850.   If NUMEROEDIFICIO$<>""
  5851.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5852.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5853.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5854.    If NUMEROSTANZA$<>""
  5855.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5856.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5857.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5858.    End If 
  5859.   End If 
  5860.  Else 
  5861.   If NUMEROLUOGO$="n"
  5862.    DREZIONE=$FFFF
  5863.   Else 
  5864.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5865.   End If 
  5866.  End If 
  5867.  DREZIONEL(6,LUOGO)=DREZIONE
  5868. End If 
  5869. DREZIONE=DREZIONEL(7,LUOGO)
  5870. Cls 
  5871. Print "Direzione NordOvest del luogo";LUOGO;">";
  5872. E=DREZIONE/$10000
  5873. If E>0
  5874.  S=DREZIONE mod $10000
  5875.  Print "edificio";E;" stanza";S
  5876. Else 
  5877.  If DREZIONE<$FFFF
  5878.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5879.  Else 
  5880.   Print " nessuno"
  5881.  End If 
  5882. End If 
  5883. Print At(0,ULTIMALINEA-1);"Direzione NordOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5884. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5885. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5886. If NUMEROLUOGO$<>""
  5887.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5888.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5889.   If NUMEROEDIFICIO$<>""
  5890.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5891.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5892.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5893.    If NUMEROSTANZA$<>""
  5894.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5895.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5896.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5897.    End If 
  5898.   End If 
  5899.  Else 
  5900.   If NUMEROLUOGO$="n"
  5901.    DREZIONE=$FFFF
  5902.   Else 
  5903.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5904.   End If 
  5905.  End If 
  5906.  DREZIONEL(7,LUOGO)=DREZIONE
  5907. End If 
  5908. DREZIONE=DREZIONEL(8,LUOGO)
  5909. Cls 
  5910. Print "Direzione Sopra del luogo";LUOGO;">";
  5911. E=DREZIONE/$10000
  5912. If E>0
  5913.  S=DREZIONE mod $10000
  5914.  Print "edificio";E;" stanza";S
  5915. Else 
  5916.  If DREZIONE<$FFFF
  5917.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5918.  Else 
  5919.   Print " nessuno"
  5920.  End If 
  5921. End If 
  5922. Print At(0,ULTIMALINEA-1);"Direzione Sopra: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5923. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5924. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5925. If NUMEROLUOGO$<>""
  5926.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5927.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5928.   If NUMEROEDIFICIO$<>""
  5929.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5930.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5931.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5932.    If NUMEROSTANZA$<>""
  5933.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5934.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5935.     If NUMEROSTANZA=0
  5936.      DREZIONE=NUMEROEDIFICIO*$10000
  5937.     Else 
  5938.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5939.     End If 
  5940.    End If 
  5941.   End If 
  5942.  Else 
  5943.   If NUMEROLUOGO$="n"
  5944.    DREZIONE=$FFFF
  5945.   Else 
  5946.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5947.   End If 
  5948.  End If 
  5949.  DREZIONEL(8,LUOGO)=DREZIONE
  5950. End If 
  5951. DREZIONE=DREZIONEL(9,LUOGO)
  5952. Cls 
  5953. Print "Direzione Sotto del luogo";LUOGO;">luogo";
  5954. E=DREZIONE/$10000
  5955. If E>0
  5956.  S=DREZIONE mod $10000
  5957.  Print "edificio";E;" stanza";S
  5958. Else 
  5959.  If DREZIONE<$FFFF
  5960.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5961.  Else 
  5962.   Print " nessuno"
  5963.  End If 
  5964. End If 
  5965. Print At(0,ULTIMALINEA-1);"Direzione Sotto: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5966. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5967. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5968. If NUMEROLUOGO$<>""
  5969.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5970.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5971.   If NUMEROEDIFICIO$<>""
  5972.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5973.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5974.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5975.    If NUMEROSTANZA$<>""
  5976.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5977.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5978.     If NUMEROSTANZA=0
  5979.      DREZIONE=NUMEROEDIFICIO*$10000
  5980.     Else 
  5981.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5982.     End If 
  5983.    End If 
  5984.   End If 
  5985.  Else 
  5986.   If NUMEROLUOGO$="n"
  5987.    DREZIONE=$FFFF
  5988.   Else 
  5989.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5990.   End If 
  5991.  End If 
  5992.  DREZIONEL(9,LUOGO)=DREZIONE
  5993. End If 
  5994. Cls 
  5995. Print "Soldi nel luogo";LUOGO;">";Str$(SOLDIL(LUOGO))-" ";" ";
  5996. If SOLDIL(LUOGO)=1 Then Print "soldo" Else Print "soldi"
  5997. Locate 0,ULTIMALINEA
  5998. Input "Nuovi soldi del luogo"+Str$(PERSONAGGIO)+" (0-65535)>";SOLDINELLUOGO$;
  5999. If SOLDINELLUOGO$<>""
  6000.  SOLDINELLUOGO=Val(SOLDINELLUOGO$)
  6001.  Proc LIMITI[SOLDINELLUOGO,0,65535] : SOLDIL(LUOGO)=Param
  6002. End If 
  6003. Curs Off 
  6004. TIPOLUOGO=TIPOL(LUOGO)
  6005. Repeat 
  6006.  Cls 
  6007.  Print "Tipo di luogo del luogo";LUOGO;">";TIPOL$(TIPOL(LUOGO))
  6008.  Print At(0,ULTIMALINEA-1);"Nuovo tipo di luogo del luogo";LUOGO;">";TIPOL$(TIPOLUOGO)
  6009.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta nuovo tipo di luogo Spazio conferma",ULTIMALINEA]
  6010.  Repeat 
  6011.   TASTOPREMUTO$=Inkey$
  6012.  Until TASTOPREMUTO$<>""
  6013.  If TASTOPREMUTO$=Cup$ Then Add TIPOLUOGO,-1,0 To 11
  6014.  If TASTOPREMUTO$=Cdown$ Then Add TIPOLUOGO,1,0 To 11
  6015. Until TASTOPREMUTO$=" "
  6016. TIPOL(LUOGO)=TIPOLUOGO
  6017. End Proc
  6018. Procedure M0DNUMCO
  6019. Cls 
  6020. Print "Numero delle categorie degli oggetti>";Str$(NUMEROCO+1)-" "
  6021. Locate 0,ULTIMALINEA : Input "Nuovo numero delle categorie degli oggetti (1-"+Str$(NUMMASCO+1)-" "+")>";NUMEROCATEGORIEDEGLIOGGETTI$;
  6022. If NUMEROCATEGORIEDEGLIOGGETTI$<>""
  6023.  NUMEROCATEGORIEDEGLIOGGETTI=Val(NUMEROCATEGORIEDEGLIOGGETTI$)
  6024.  Dec NUMEROCATEGORIEDEGLIOGGETTI
  6025.  Proc LIMITI[NUMEROCATEGORIEDEGLIOGGETTI,0,NUMMASCO] : NUMEROCO=Param
  6026. End If 
  6027. Curs Off 
  6028. End Proc
  6029. Procedure M0DNUME
  6030. Cls 
  6031. Print "Numero degli edifici>";Str$(NUMEROE+1)-" "
  6032. Locate 0,ULTIMALINEA : Input "Nuovo numero degli edifici (0-"+Str$(NUMMASE+1)-" "+")>";NUMEROEDIFICI$;
  6033. If NUMEROEDIFICI$<>""
  6034.  NUMEROEDIFICI=Val(NUMEROEDIFICI$) : Dec NUMEROEDIFICI
  6035.  Proc LIMITI[NUMEROEDIFICI,-1,NUMMASE] : NUMEROE=Param
  6036.  If NUMEROE=-1
  6037.   EDIFICIO=NUMEROE
  6038.  End If 
  6039. End If 
  6040. Curs Off 
  6041. End Proc
  6042. Procedure M0DNUML
  6043. Cls 
  6044. Print "Numero dei luoghi>";Str$(NUMEROL+1)-" "
  6045. Locate 0,ULTIMALINEA : Input "Nuovo numero dei luoghi (1-"+Str$(NUMMASL+1)-" "+")>";NUMEROLUOGHI$;
  6046. If NUMEROLUOGHI$<>""
  6047.  NUMEROLUOGHI=Val(NUMEROLUOGHI$) : Dec NUMEROLUOGHI
  6048.  Proc LIMITI[NUMEROLUOGHI,0,NUMMASL] : NUMEROL=Param
  6049. End If 
  6050. Curs Off 
  6051. End Proc
  6052. Procedure M0DNUMO
  6053. Cls 
  6054. Print "Numero degli oggetti>";Str$(NUMEROO+1)-" "
  6055. Locate 0,ULTIMALINEA : Input "Nuovo numero degli oggetti (1-"+Str$(NUMMASO+1)-" "+")>";NUMEROOGGETTI$;
  6056. If NUMEROOGGETTI$<>""
  6057.  NUMEROOGGETTI=Val(NUMEROOGGETTI$) : Dec NUMEROOGGETTI
  6058.  Proc LIMITI[NUMEROOGGETTI,0,NUMMASO] : NUMEROO=Param
  6059. End If 
  6060. Curs Off 
  6061. End Proc
  6062. Procedure M0DNUMP
  6063. Cls 
  6064. Print "Numero dei personaggi>";Str$(NUMEROP+1)-" "
  6065. Locate 0,ULTIMALINEA : Input "Nuovo numero dei personaggi (1-"+Str$(NUMMASP+1)-" "+")>";NUMEROPERSONAGGI$;
  6066. If NUMEROPERSONAGGI$<>""
  6067.  NUMEROPERSONAGGI=Val(NUMEROPERSONAGGI$) : Dec NUMEROPERSONAGGI
  6068.  Proc LIMITI[NUMEROPERSONAGGI,0,NUMMASL] : NUMEROP=Param
  6069. End If 
  6070. Curs Off 
  6071. End Proc
  6072. Procedure M0DNUMR
  6073. Cls 
  6074. Print "Numero delle regioni>";Str$(NUMEROR+1)-" "
  6075. Locate 0,ULTIMALINEA : Input "Nuovo numero delle regioni (1-"+Str$(NUMMASL+1)-" "+")>";NUMEROREGIONI$;
  6076. If NUMEROREGIONI$<>""
  6077.  NUMEROREGIONI=Val(NUMEROREGIONI$) : Dec NUMEROREGIONI
  6078.  Proc LIMITI[NUMEROREGIONI,0,NUMMASL] : NUMEROR=Param
  6079. End If 
  6080. Curs Off 
  6081. End Proc
  6082. Procedure M0DNUMS
  6083. Cls 
  6084. Print "Numero delle stanze>";Str$(NUMEROS(EDIFICIO)+1)-" "
  6085. Locate 0,ULTIMALINEA : Input "Nuovo numero delle stanze (1-"+Str$(NUMMASS+1)-" "+")>";NUMEROSTANZE$;
  6086. If NUMEROSTANZE$<>""
  6087.  NUMEROSTANZE=Val(NUMEROSTANZE$) : Dec NUMEROSTANZE
  6088.  Proc LIMITI[NUMEROSTANZE,0,NUMMASS] : NUMEROS(EDIFICIO)=Param
  6089. End If 
  6090. Curs Off 
  6091. End Proc
  6092. Procedure M0DOGGETTO
  6093. CO=CATEGORIAO(OGGETTO)
  6094. Repeat 
  6095.  Cls 
  6096.  Print "Nome dell'oggetto";OGGETTO;">";
  6097.  If Btst(1,TIPOO(OGGETTO))=True
  6098.   Print NOMESRO$(CATEGORIAO(OGGETTO))
  6099.  Else 
  6100.   Print NOMESCO$(CATEGORIAO(OGGETTO))
  6101.  End If 
  6102.  Print At(0,ULTIMALINEA-1);"Nuovo nome dell'oggetto";OGGETTO;">";
  6103.  If Btst(1,TIPOO(OGGETTO))=True
  6104.   Print NOMESRO$(CO);
  6105.  Else 
  6106.   Print NOMESCO$(CO);
  6107.  End If 
  6108.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta nuovo nome Spazio conferma",ULTIMALINEA]
  6109.  Repeat 
  6110.   TASTOPREMUTO$=Inkey$
  6111.  Until TASTOPREMUTO$<>""
  6112.  If TASTOPREMUTO$=Cup$ Then Add CO,-1,0 To NUMEROCO
  6113.  If TASTOPREMUTO$=Cdown$ Then Add CO,1,0 To NUMEROCO
  6114. Until TASTOPREMUTO$=" "
  6115. CATEGORIAO(OGGETTO)=CO
  6116. Cls 
  6117. Print "Nome dell'oggetto";OGGETTO;">";
  6118. If Btst(1,TIPOO(OGGETTO))=True
  6119.  Print NOMESRO$(CATEGORIAO(OGGETTO))
  6120. Else 
  6121.  Print NOMESCO$(CATEGORIAO(OGGETTO))
  6122. End If 
  6123. Print "Posizione dell'oggetto";OGGETTO;">";
  6124. If POSIZIONEO(OGGETTO)<0
  6125.  SOGGETTO= Not POSIZIONEO(OGGETTO)
  6126.  If Btst(0,TIPOO(OGGETTO))=True
  6127.   Print "posseduto dal personaggio";SOGGETTO;
  6128.   Print " nome>";NOMEP$(SOGGETTO)
  6129.   If POSIZIONEO(OGGETTO)=-1
  6130.    POSSEDUTODALPERSONAGGIO0=True
  6131.   End If 
  6132.  Else 
  6133.   Print "contenuto nell'oggetto";SOGGETTO;
  6134.   Print " nome>";NOMESCO$(CATEGORIAO(SOGGETTO))
  6135.  End If 
  6136. Else 
  6137.  E=POSIZIONEO(OGGETTO)/$10000
  6138.  If E>0
  6139.   Print "Edificio";E;" nome>";NOMEE$(E-1)
  6140.   S=POSIZIONEO(OGGETTO) mod $10000
  6141.   Print "Stanza";S;" nome>";NOMES$(S,E-1)
  6142.  Else 
  6143.   Print "luogo";POSIZIONEO(OGGETTO);" nome>";NOMEL$(POSIZIONEO(OGGETTO))
  6144.  End If 
  6145. End If 
  6146. Print At(0,ULTIMALINEA-1);"Luogo dell'oggetto (0-";
  6147. Print Str$(NUMEROL)-" ";" E=Edificio O=Oggetto P=Personaggio)";
  6148. Locate 0,ULTIMALINEA : Input "Nuovo luogo dell'oggetto>";NUMEROLUOGO$;
  6149. If NUMEROLUOGO$<>""
  6150.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6151.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6152.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6153.   If NUMEROEDIFICIO$<>""
  6154.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6155.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6156.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6157.    If NUMEROSTANZA$<>""
  6158.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6159.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6160.     POSIZIONEO(OGGETTO)=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6161.    End If 
  6162.   End If 
  6163.  Else If NUMEROLUOGO$="o"
  6164.   Print At(0,ULTIMALINEA-1);"Oggetto che contiene l'oggetto";OGGETTO;
  6165.   Print " (0-";Str$(NUMEROO)-" ";")             ";
  6166.   Locate 0,ULTIMALINEA : Input "Numero dell'oggetto>";NUMEROOGGETTO$;
  6167.   If NUMEROOGGETTO$<>""
  6168.    NUMEROOGGETTO=Val(NUMEROOGGETTO$)
  6169.    Proc LIMITI[NUMEROOGGETTO,0,NUMEROO] : NUMEROOGGETTO=Param
  6170.    If NUMEROOGGETTO=OGGETTO
  6171.     Curs Off 
  6172.     Print At(0,ULTIMALINEA);"L'oggetto non pu� contenere s� stesso";
  6173.     Proc _ASPETTA
  6174.    Else 
  6175.     If Btst(1,TIPOCO(CATEGORIAO(NUMEROOGGETTO)))=True
  6176.      POSIZIONEO(OGGETTO)= Not NUMEROOGGETTO : Bclr 0,TIPOO(OGGETTO)
  6177.     Else 
  6178.      Print At(0,ULTIMALINEA);"L'oggetto non ï¿½ un contenitore";
  6179.      Proc _ASPETTA
  6180.     End If 
  6181.    End If 
  6182.   End If 
  6183.  Else If NUMEROLUOGO$="p"
  6184.   Locate 0,ULTIMALINEA-1 : Cline : Print "Personaggio che possiede l'oggetto (0-";
  6185.   Print Str$(NUMEROP)-" ";")"
  6186.   Locate 0,ULTIMALINEA : Input "Numero del personaggio>";NUMEROPERSONAGGIO$;
  6187.   If NUMEROPERSONAGGIO$<>""
  6188.    NUMEROPERSONAGGIO=Val(NUMEROPERSONAGGIO$)
  6189.    Proc LIMITI[NUMEROPERSONAGGIO,0,NUMEROP] : NUMEROPERSONAGGIO=Param
  6190.    POSIZIONEO(OGGETTO)= Not NUMEROPERSONAGGIO : Bset 0,TIPOO(OGGETTO)
  6191.    If Btst(1,TIPOO(OGGETTO))=True
  6192.     Add PESONETTOP(NUMEROPERSONAGGIO),PESORESTOCO(CATEGORIAO(OGGETTO))
  6193.    Else 
  6194.     Add PESONETTOP(NUMEROPERSONAGGIO),PESOCO(CATEGORIAO(OGGETTO))
  6195.    End If 
  6196.    If NUMEROPERSONAGGIO=0
  6197.     If Btst(1,TIPOO(OGGETTO))=True
  6198.      Inc RESTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6199.     Else 
  6200.      Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6201.     End If 
  6202.    End If 
  6203.    If Btst(1,TIPOCO(CATEGORIAO(OGGETTO)))=True
  6204.     For A=0 To NUMEROO
  6205.      If POSIZIONEO(A)=-1-OGGETTO and Btst(0,TIPOO(A))=False
  6206.       If Btst(1,TIPOO(A))=True
  6207.        Add PESONETTOP(NUMEROPERSONAGGIO),PESORESTOCO(CATEGORIAO(A))
  6208.       Else 
  6209.        Add PESONETTOP(NUMEROPERSONAGGIO),PESOCO(CATEGORIAO(A))
  6210.       End If 
  6211.      End If 
  6212.     Next A
  6213.     For A=0 To NUMEROP
  6214.      If POSIZIONEP(A)=-1-OGGETTO and Btst(0,TIPOP(A))=False
  6215.       Add PESONETTOP(NUMEROPERSONAGGIO),PESOP(A)
  6216.       Add PESONETTOP(NUMEROPERSONAGGIO),PESONETTOP(A)
  6217.      End If 
  6218.     Next A
  6219.    End If 
  6220.   End If 
  6221.  Else 
  6222.   NUMEROLUOGO=Val(NUMEROLUOGO$)
  6223.   Proc LIMITI[NUMEROLUOGO,0,NUMEROL] : POSIZIONEO(OGGETTO)=Param
  6224.  End If 
  6225.  If POSSEDUTODALPERSONAGGIO0=True
  6226.   If Btst(1,TIPOO(OGGETTO))=True
  6227.    Dec RESTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6228.   Else 
  6229.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6230.   End If 
  6231.  End If 
  6232. End If 
  6233. Curs Off 
  6234. If POSIZIONEO(OGGETTO)>0 or Btst(0,TIPOO(OGGETTO))=False or Btst(2,TIPOCO(CATEGORIAO(OGGETTO)))=False or Btst(2,TIPOO(OGGETTO))=False
  6235.  Cls 
  6236.  Print "Nome dell'oggetto";OGGETTO;">";
  6237.  If Btst(1,TIPOO(OGGETTO))=True
  6238.   Print NOMESRO$(CATEGORIAO(OGGETTO))
  6239.  Else 
  6240.   Print NOMESCO$(CATEGORIAO(OGGETTO))
  6241.  End If 
  6242.  Print At(0,ULTIMALINEA);"Vuoi che l'oggetto sia un resto di oggetto (s/n) ?>";
  6243.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  6244.  If RISPOSTA$="s"
  6245.   If NUMEROPERSONAGGIO=0 or POSSEDUTODALPERSONAGGIO0=True
  6246.    If Btst(1,TIPOO(OGGETTO))=False
  6247.     Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6248.     Inc RESTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6249.    End If 
  6250.   End If 
  6251.   Bset 1,TIPOO(OGGETTO)
  6252.  Else 
  6253.   If NUMEROPERSONAGGIO=0 or POSSEDUTODALPERSONAGGIO0=True
  6254.    If Btst(1,TIPOO(OGGETTO))=True
  6255.     Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6256.     Dec RESTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6257.    End If 
  6258.   End If 
  6259.   Bclr 1,TIPOO(OGGETTO)
  6260.  End If 
  6261. End If 
  6262. If POSIZIONEO(OGGETTO)<0 and Btst(0,TIPOO(OGGETTO))=True and Btst(2,TIPOCO(CATEGORIAO(OGGETTO)))=True and Btst(1,TIPOO(OGGETTO))=False
  6263.  Cls 
  6264.  Print "Nome dell'oggetto";OGGETTO;">";NOMESCO$(CATEGORIAO(OGGETTO))
  6265.  Print At(0,ULTIMALINEA);"Vuoi che l'oggetto difensivo sia indossato (s/n) ?>";
  6266.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  6267.  If RISPOSTA$="s"
  6268.   Bset 2,TIPOO(OGGETTO)
  6269.  Else 
  6270.   Bclr 2,TIPOO(OGGETTO)
  6271.  End If 
  6272. End If 
  6273. Locate 0,ULTIMALINEA : Cline 
  6274. Print "Vuoi che l'oggetto sia nascosto (s/n) ?>";
  6275. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  6276. If RISPOSTA$="s"
  6277.  Bset 3,TIPOO(OGGETTO)
  6278. Else 
  6279.  Bclr 3,TIPOO(OGGETTO)
  6280. End If 
  6281. End Proc
  6282. Procedure M0DPERSONAGGIO
  6283. Cls 
  6284. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6285. Locate 0,ULTIMALINEA : Input "Nuovo nome del personaggio"+Str$(PERSONAGGIO)+">";NOMEPERSONAGGIO$;
  6286. If NOMEPERSONAGGIO$<>"" Then NOMEP$(PERSONAGGIO)=NOMEPERSONAGGIO$
  6287. Cls 
  6288. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6289. Print "Posizione del personaggio";PERSONAGGIO;">";
  6290. If POSIZIONEP(PERSONAGGIO)<0
  6291.  SOGGETTO= Not POSIZIONEP(PERSONAGGIO)
  6292.  If Btst(0,TIPOP(PERSONAGGIO))=True
  6293.   Print "trasportato dal personaggio";SOGGETTO;
  6294.   Print " di nome ";NOMEP$(SOGGETTO)
  6295.  Else 
  6296.   Print "contenuto nell'oggetto";SOGGETTO;
  6297.   Print " di nome ";NOMESCO$(CATEGORIAO(SOGGETTO))
  6298.  End If 
  6299. Else 
  6300.  E=POSIZIONEP(PERSONAGGIO)/$10000
  6301.  If E>0
  6302.   Print "Edificio";E;" nome>";NOMEE$(E-1)
  6303.   S=POSIZIONEP(PERSONAGGIO) mod $10000
  6304.   Print "Stanza";S;" nome>";NOMES$(S,E-1)
  6305.  Else 
  6306.   Print "luogo";POSIZIONEP(PERSONAGGIO);" nome>";NOMEL$(POSIZIONEP(PERSONAGGIO))
  6307.  End If 
  6308. End If 
  6309. If PERSONAGGIO=0
  6310.  Print At(0,ULTIMALINEA-1);"Luogo del personaggio (0-";Str$(NUMEROL)-" ";" E=Edificio)";
  6311.  Locate 0,ULTIMALINEA : Input "Nuovo luogo del personaggio>";NUMEROLUOGO$;
  6312.  If NUMEROLUOGO$<>""
  6313.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6314.    Locate 0,ULTIMALINEA : Input "Quale edificio (0-"+Str$(NUMEROE)-" "+") ?>";NUMEROEDIFICIO$;
  6315.    If NUMEROEDIFICIO$<>""
  6316.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6317.     Proc LIMITI[NUMEROEDIFICIO,0,NUMEROE] : NUMEROEDIFICIO=Param
  6318.     Locate 0,ULTIMALINEA : Input "Quale stanza (0-"+Str$(NUMEROS(NUMEROEDIFICIO))-" "+") ?>";NUMEROSTANZA$;
  6319.     If NUMEROSTANZA$<>""
  6320.      NUMEROSTANZA=Val(NUMEROSTANZA$)
  6321.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6322.      POSIZIONEP(PERSONAGGIO)=(NUMEROEDIFICIO+1)*$10000+NUMEROSTANZA
  6323.     End If 
  6324.    End If 
  6325.   Else 
  6326.    NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6327.    NUMEROLUOGO=Val(NUMEROLUOGO$)
  6328.    Proc LIMITI[NUMEROLUOGO,0,NUMEROL] : POSIZIONEP(PERSONAGGIO)=Param
  6329.    LUOGODIDESTINAZIONEP(PERSONAGGIO)=-1
  6330.    TEMP0DIATTRAVERSAMENTOP(PERSONAGGIO)=0
  6331.    DREZIONEPRESAP(PERSONAGGIO)=-1
  6332.    DREZIONEOPPOSTAAQUELLAPRESAP(PERSONAGGIO)=0
  6333.   End If 
  6334.  End If 
  6335. Else 
  6336.  Print At(0,ULTIMALINEA-1);"Luogo del personaggio (0-";
  6337.  Print Str$(NUMEROL)-" ";" E=Edificio O=Oggetto P=Personaggio)";
  6338.  Locate 0,ULTIMALINEA : Input "Nuovo luogo del personaggio>";NUMEROLUOGO$;
  6339.  If NUMEROLUOGO$<>""
  6340.   NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6341.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6342.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6343.    If NUMEROEDIFICIO$<>""
  6344.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6345.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6346.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6347.     If NUMEROSTANZA$<>""
  6348.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6349.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6350.      POSIZIONEP(PERSONAGGIO)=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6351.     End If 
  6352.    End If 
  6353.   Else If NUMEROLUOGO$="o"
  6354.    Print At(0,ULTIMALINEA-1);"Oggetto che contiene il personaggio (0-";
  6355.    Print Str$(NUMEROO)-" ";")             ";
  6356.    Locate 0,ULTIMALINEA : Input "Numero dell'oggetto>";NUMEROOGGETTO$;
  6357.    If NUMEROOGGETTO$<>""
  6358.     NUMEROOGGETTO=Val(NUMEROOGGETTO$)
  6359.     Proc LIMITI[NUMEROOGGETTO,0,NUMEROO] : NUMEROOGGETTO=Param
  6360.     If Btst(1,TIPOCO(CATEGORIAO(NUMEROOGGETTO)))=True
  6361.      POSIZIONEP(PERSONAGGIO)= Not NUMEROOGGETTO : Bclr 0,TIPOP(PERSONAGGIO)
  6362.     Else 
  6363.      Print At(0,ULTIMALINEA);"L'oggetto non ï¿½ un contenitore";
  6364.      Proc _ASPETTA
  6365.     End If 
  6366.    End If 
  6367.   Else If NUMEROLUOGO$="p"
  6368.    Print At(0,ULTIMALINEA-1);"Personaggio che trasporta il personaggio";PERSONAGGIO;
  6369.    Print " (0-";Str$(NUMEROP)-" ";")    ";
  6370.    Locate 0,ULTIMALINEA : Input "Numero del personaggio>";NUMEROPERSONAGGIO$;
  6371.    If NUMEROPERSONAGGIO$<>""
  6372.     NUMEROPERSONAGGIO=Val(NUMEROPERSONAGGIO$)
  6373.     Proc LIMITI[NUMEROPERSONAGGIO,0,NUMEROP] : NUMEROPERSONAGGIO=Param
  6374.     If NUMEROPERSONAGGIO=PERSONAGGIO
  6375.      Curs Off 
  6376.      Print At(0,ULTIMALINEA);"Il personaggio non pu� trasportare s� stesso";
  6377.      Proc _ASPETTA
  6378.     Else 
  6379.      POSIZIONEP(PERSONAGGIO)= Not NUMEROPERSONAGGIO : Bset 0,TIPOP(PERSONAGGIO)
  6380.      Add PESONETTOP(NUMEROPERSONAGGIO),PESOP(PERSONAGGIO)*1000
  6381.     End If 
  6382.    End If 
  6383.   Else 
  6384.    NUMEROLUOGO=Val(NUMEROLUOGO$)
  6385.    Proc LIMITI[NUMEROLUOGO,0,NUMEROL] : POSIZIONEP(PERSONAGGIO)=Param
  6386.    LUOGODIDESTINAZIONEP(PERSONAGGIO)=-1
  6387.    TEMP0DIATTRAVERSAMENTOP(PERSONAGGIO)=0
  6388.    DREZIONEPRESAP(PERSONAGGIO)=-1
  6389.    DREZIONEOPPOSTAAQUELLAPRESAP(PERSONAGGIO)=0
  6390.   End If 
  6391.  End If 
  6392. End If 
  6393. Curs Off 
  6394. Cls 
  6395. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6396. Print "Costituzione del personaggio";PERSONAGGIO;">";
  6397. Print Str$(C0STITUZIONEP(PERSONAGGIO))-" ";" ";
  6398. If C0STITUZIONEP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  6399. Locate 0,ULTIMALINEA
  6400. Input "Nuova costituzione del personaggio"+Str$(PERSONAGGIO)+" (1-65536)>";C0STITUZIONEPERSONAGGIO$;
  6401. If C0STITUZIONEPERSONAGGIO$<>""
  6402.  C0STITUZIONEPERSONAGGIO=Val(C0STITUZIONEPERSONAGGIO$)
  6403.  LIMITI[C0STITUZIONEPERSONAGGIO,1,65536]
  6404.  C0STITUZIONEP(PERSONAGGIO)=Param
  6405. End If 
  6406. Cls 
  6407. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6408. Print "Forza del personaggio";PERSONAGGIO;">";Str$(F0RZAP(PERSONAGGIO))-" ";" ";
  6409. If F0RZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  6410. Locate 0,ULTIMALINEA
  6411. Input "Nuova forza del personaggio"+Str$(PERSONAGGIO)+" (1-65536)>";F0RZAPERSONAGGIO$;
  6412. If F0RZAPERSONAGGIO$<>""
  6413.  F0RZAPERSONAGGIO=Val(F0RZAPERSONAGGIO$)
  6414.  LIMITI[F0RZAPERSONAGGIO,1,65536] : F0RZAP(PERSONAGGIO)=Param
  6415. End If 
  6416. Cls 
  6417. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6418. Print "Peso del personaggio";PERSONAGGIO;">";Str$(PESOP(PERSONAGGIO))-" ";" ";
  6419. If PESOP(PERSONAGGIO)=1 Then Print "chilo" Else Print "chili"
  6420. Locate 0,ULTIMALINEA
  6421. Input "Nuovo peso del personaggio"+Str$(PERSONAGGIO)+" (1-65536)>";PESOPERSONAGGIO$;
  6422. If PESOPERSONAGGIO$<>""
  6423.  PESOPERSONAGGIO=Val(PESOPERSONAGGIO$) : PESOPRECEDENTE=PESOP(PERSONAGGIO)
  6424.  LIMITI[PESOPERSONAGGIO,1,65536] : PESOP(PERSONAGGIO)=Param
  6425.  For A=0 To NUMEROP
  6426.   If POSIZIONEP(PERSONAGGIO)=-1-A and Btst(0,TIPOP(PERSONAGGIO))=True
  6427.    Add PESONETTOP(A),-PESOPRECEDENTE*1000
  6428.    Add PESONETTOP(A),PESOP(PERSONAGGIO)*1000
  6429.   End If 
  6430.  Next A
  6431. End If 
  6432. Cls 
  6433. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6434. Print "Resistenza del personaggio";PERSONAGGIO;">";
  6435. Print Str$(RESISTENZAP(PERSONAGGIO))-" ";" ";
  6436. If RESISTENZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  6437. Locate 0,ULTIMALINEA
  6438. Input "Nuova resistenza del personaggio"+Str$(PERSONAGGIO)+" (0-"+Str$(C0STITUZIONEP(PERSONAGGIO))-" "+")>";RESISTENZAPERSONAGGIO$;
  6439. If RESISTENZAPERSONAGGIO$<>""
  6440.  RESISTENZAPERSONAGGIO=Val(RESISTENZAPERSONAGGIO$)
  6441.  LIMITI[RESISTENZAPERSONAGGIO,0,C0STITUZIONEP(PERSONAGGIO)]
  6442.  RESISTENZAP(PERSONAGGIO)=Param
  6443.  If RESISTENZAP(PERSONAGGIO)=0
  6444.   For A=0 To NUMEROO
  6445.    If POSIZIONEO(A)=-1-PERSONAGGIO and Btst(0,TIPOO(A))=True
  6446.    POSIZIONEO(A)=POSIZIONEP(PERSONAGGIO)
  6447.     If Btst(1,TIPOO(A))=True
  6448.      Add PESONETTOP(PERSONAGGIO),-PESORESTOCO(CATEGORIAO(A))
  6449.     Else 
  6450.      Add PESONETTOP(PERSONAGGIO),-PESOCO(CATEGORIAO(A))
  6451.     End If 
  6452.     If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  6453.      For B=0 To NUMEROO
  6454.       If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  6455.        If Btst(1,TIPOO(B))=True
  6456.         Add PESONETTOP(PERSONAGGIO),-PESORESTOCO(CATEGORIAO(B))
  6457.        Else 
  6458.         Add PESONETTOP(PERSONAGGIO),-PESOCO(CATEGORIAO(B))
  6459.        End If 
  6460.       End If 
  6461.      Next B
  6462.      For B=1 To NUMEROP
  6463.       If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(B))=False
  6464.        Add PESONETTOP(PERSONAGGIO),-PESOP(B)*1000
  6465.        Add PESONETTOP(PERSONAGGIO),-PESONETTOP(B)
  6466.       End If 
  6467.      Next B
  6468.     End If 
  6469.    End If 
  6470.   Next A
  6471.   Add SOLDIL(POSIZIONEP(PERSONAGGIO)),SOLDIP(PERSONAGGIO)
  6472.   Add PESONETTOP(PERSONAGGIO),-SOLDIP(PERSONAGGIO)*PESOS
  6473.   SOLDIP(PERSONAGGIO)=0
  6474.  End If 
  6475. End If 
  6476. Cls 
  6477. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6478. Print "Sesso del personaggio";PERSONAGGIO;">";
  6479. If Btst(1,TIPOP(PERSONAGGIO))=True Then Print "Femminile" Else Print "Maschile"
  6480. Locate 0,ULTIMALINEA
  6481. Input "Nuovo sesso del personaggio"+Str$(PERSONAGGIO)+" (M=maschile F=femminile)>";SESSOPERSONAGGIO$;
  6482. SESSOPERSONAGGIO$=Lower$(Left$(SESSOPERSONAGGIO$,1))
  6483. If SESSOPERSONAGGIO$<>""
  6484.  If SESSOPERSONAGGIO$="f"
  6485.   Bset 1,TIPOP(PERSONAGGIO)
  6486.  End If 
  6487.  If SESSOPERSONAGGIO$="m"
  6488.   Bclr 1,TIPOP(PERSONAGGIO)
  6489.  End If 
  6490. End If 
  6491. If PERSONAGGIO>0
  6492.  Cls 
  6493.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6494.  Print "Condizione del personaggio";PERSONAGGIO;">";
  6495.  If Btst(3,TIPOP(PERSONAGGIO))=True
  6496.   Print "Nemic";
  6497.  Else 
  6498.   Print "Amic";
  6499.  End If 
  6500.  If Btst(1,TIPOP(PERSONAGGIO))=True
  6501.   Print "a"
  6502.  Else 
  6503.   Print "o"
  6504.  End If 
  6505.  Locate 0,ULTIMALINEA
  6506.  Input "Nuova condizione del personaggio"+Str$(PERSONAGGIO)+" (A=amico/a N=nemico/a)>";CONDIZIONEPERSONAGGIO$;
  6507.  CONDIZIONEPERSONAGGIO$=Lower$(Left$(CONDIZIONEPERSONAGGIO$,1))
  6508.  If CONDIZIONEPERSONAGGIO$<>""
  6509.   If CONDIZIONEPERSONAGGIO$="n"
  6510.    Bset 3,TIPOP(PERSONAGGIO)
  6511.   End If 
  6512.   If CONDIZIONEPERSONAGGIO$="a"
  6513.    Bclr 3,TIPOP(PERSONAGGIO)
  6514.   End If 
  6515.  End If 
  6516. End If 
  6517. SOLDIPRECEDENTI=SOLDIP(PERSONAGGIO)
  6518. Cls 
  6519. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6520. Print "Soldi del personaggio";PERSONAGGIO;">";Str$(SOLDIPRECEDENTI)-" ";" ";
  6521. If SOLDIPRECEDENTI=1 Then Print "soldo" Else Print "soldi"
  6522. Locate 0,ULTIMALINEA
  6523. Input "Nuovi soldi del personaggio"+Str$(PERSONAGGIO)+" (0-65535)>";SOLDIPERSONAGGIO$;
  6524. If SOLDIPERSONAGGIO$<>""
  6525.  SOLDIPERSONAGGIO=Val(SOLDIPERSONAGGIO$)
  6526.  Proc LIMITI[SOLDIPERSONAGGIO,0,65535] : SOLDIP(PERSONAGGIO)=Param
  6527.  If SOLDIPERSONAGGIO>0
  6528.   Add PESONETTOP(PERSONAGGIO),-SOLDIPRECEDENTI*PESOS
  6529.   Add PESONETTOP(PERSONAGGIO),SOLDIPERSONAGGIO*PESOS
  6530.  End If 
  6531. End If 
  6532. If PERSONAGGIO>0
  6533.  Cls 
  6534.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6535.  Print "Inizio sonno del personaggio>";PERSONAGGIO;">";
  6536.  _ORE=INIZIOSONNOP(PERSONAGGIO)/60 mod 24
  6537.  Print Using "#";_ORE/10; Using "#";_ORE mod 10;
  6538.  M1NUTI=INIZIOSONNOP(PERSONAGGIO) mod 60
  6539.  Print Using ":#";M1NUTI/10; Using "#";M1NUTI mod 10
  6540.  Locate 0,ULTIMALINEA
  6541.  Input "Ore del nuovo inizio del sonno del personaggio"+Str$(PERSONAGGIO)+" (0-23)>";INIZIOSONNOPERSONAGGIO$;
  6542.  If INIZIOSONNOPERSONAGGIO$<>""
  6543.   INIZIOSONNOPERSONAGGIO=Val(INIZIOSONNOPERSONAGGIO$)
  6544.   Proc LIMITI[INIZIOSONNOPERSONAGGIO,0,23] : INIZIOSONNOP(PERSONAGGIO)=Param*60
  6545.   Locate 0,ULTIMALINEA
  6546.   Input "Minuti del nuovo inizio del sonno del personaggio"+Str$(PERSONAGGIO)+" (0-59)>";INIZIOSONNOPERSONAGGIO$;
  6547.   If INIZIOSONNOPERSONAGGIO$<>""
  6548.    INIZIOSONNOPERSONAGGIO=Val(INIZIOSONNOPERSONAGGIO$)
  6549.    Proc LIMITI[INIZIOSONNOPERSONAGGIO,0,59] : Add INIZIOSONNOP(PERSONAGGIO),Param
  6550.   End If 
  6551.  End If 
  6552.  Curs Off 
  6553.  For A=0 To 7
  6554.   Cls 
  6555.   Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6556.   AZIONE=AZIONEP(A,PERSONAGGIO)
  6557.   PARA=PARAAAZIONEP(A,PERSONAGGIO)
  6558.   PARB=PARABAZIONEP(A,PERSONAGGIO)
  6559.   PARC=PARACAZIONEP(A,PERSONAGGIO)
  6560.   Print "Azione";A+1;">";
  6561.   Proc MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  6562.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta nuova azione Spazio conferma",ULTIMALINEA]
  6563.   Repeat 
  6564.    Print At(0,ULTIMALINEA-2); : Cline : Print : Cline : Cmove ,-1
  6565.    Print "azione";A+1;">";
  6566.    Proc MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  6567.    Repeat 
  6568.     TASTOPREMUTO$=Inkey$
  6569.    Until TASTOPREMUTO$<>""
  6570.    If TASTOPREMUTO$=Cup$
  6571.     Add AZIONE,-1,1 To 41
  6572.    End If 
  6573.    If TASTOPREMUTO$=Cdown$
  6574.     Add AZIONE,1,1 To 41
  6575.    End If 
  6576.   Until TASTOPREMUTO$=" "
  6577.   AZIONEP(A,PERSONAGGIO)=AZIONE
  6578.   Proc TIC["Vuoi modificare i parametri dell'azione (s/n) ?",ULTIMALINEA]
  6579.   RISPOSTA$=Input$(1)
  6580.   If RISPOSTA$="s"
  6581.    Proc INSERISCIPARAMETRIAZIONE[AZIONE,A,PERSONAGGIO]
  6582.    Curs Off 
  6583.   End If 
  6584.  Next A
  6585. End If 
  6586. Curs Off 
  6587. End Proc
  6588. Procedure M0DREGIONE
  6589. Cls 
  6590. Print "Nome della regione";REGIONE;">";NOMER$(REGIONE)
  6591. Locate 0,ULTIMALINEA : Input "Nuovo nome della regione"+Str$(REGIONE)+">";NOMEREGIONE$;
  6592. If NOMEREGIONE$<>"" Then NOMER$(REGIONE)=NOMEREGIONE$
  6593. Curs Off 
  6594. End Proc
  6595. Procedure M0DSTANZA
  6596. Cls 
  6597. Print "Nome della stanza";STANZA;">";NOMES$(STANZA,EDIFICIO)
  6598. Locate 0,ULTIMALINEA
  6599. Input "Nuovo nome della stanza"+Str$(LUOGO)+">";NOMESTANZA$;
  6600. If NOMESTANZA$<>"" Then NOMES$(STANZA,EDIFICIO)=NOMESTANZA$
  6601. DREZIONE=DREZIONES(0,STANZA,EDIFICIO)
  6602. Cls 
  6603. Print "Direzione Nord della stanza";STANZA;">";
  6604. E=DREZIONE/$10000
  6605. If E>0
  6606.  S=DREZIONE mod $10000
  6607.  Print "edificio";E;" stanza";S
  6608. Else 
  6609.  If DREZIONE<$FFFF
  6610.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6611.  Else 
  6612.   Print " nessuno"
  6613.  End If 
  6614. End If 
  6615. Print At(0,ULTIMALINEA-1);"Direzione Nord: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6616. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6617. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6618. If NUMEROLUOGO$<>""
  6619.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6620.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6621.   If NUMEROEDIFICIO$<>""
  6622.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6623.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6624.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6625.    If NUMEROSTANZA$<>""
  6626.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6627.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6628.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6629.    End If 
  6630.   End If 
  6631.  Else 
  6632.   If NUMEROLUOGO$="n"
  6633.    DREZIONE=$FFFF
  6634.   Else 
  6635.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6636.   End If 
  6637.  End If 
  6638.  DREZIONES(0,STANZA,EDIFICIO)=DREZIONE
  6639. End If 
  6640. DREZIONE=DREZIONES(1,STANZA,EDIFICIO)
  6641. Cls 
  6642. Print "Direzione NordEst della stanza";STANZA;">";
  6643. E=DREZIONE/$10000
  6644. If E>0
  6645.  S=DREZIONE mod $10000
  6646.  Print "edificio";E;" stanza";S
  6647. Else 
  6648.  If DREZIONE<$FFFF
  6649.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6650.  Else 
  6651.   Print " nessuno"
  6652.  End If 
  6653. End If 
  6654. Print At(0,ULTIMALINEA-1);"Direzione NordEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6655. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6656. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6657. If NUMEROLUOGO$<>""
  6658.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6659.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6660.   If NUMEROEDIFICIO$<>""
  6661.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6662.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6663.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6664.    If NUMEROSTANZA$<>""
  6665.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6666.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6667.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6668.    End If 
  6669.   End If 
  6670.  Else 
  6671.   If NUMEROLUOGO$="n"
  6672.    DREZIONE=$FFFF
  6673.   Else 
  6674.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6675.   End If 
  6676.  End If 
  6677.  DREZIONES(1,STANZA,EDIFICIO)=DREZIONE
  6678. End If 
  6679. DREZIONE=DREZIONES(2,STANZA,EDIFICIO)
  6680. Cls 
  6681. Print "Direzione Est della stanza";STANZA;">";
  6682. E=DREZIONE/$10000
  6683. If E>0
  6684.  S=DREZIONE mod $10000
  6685.  Print "edificio";E;" stanza";S
  6686. Else 
  6687.  If DREZIONE<$FFFF
  6688.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6689.  Else 
  6690.   Print " nessuno"
  6691.  End If 
  6692. End If 
  6693. Print At(0,ULTIMALINEA-1);"Direzione Est: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6694. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6695. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6696. If NUMEROLUOGO$<>""
  6697.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6698.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6699.   If NUMEROEDIFICIO$<>""
  6700.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6701.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6702.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6703.    If NUMEROSTANZA$<>""
  6704.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6705.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6706.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6707.    End If 
  6708.   End If 
  6709.  Else 
  6710.   If NUMEROLUOGO$="n"
  6711.    DREZIONE=$FFFF
  6712.   Else 
  6713.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6714.   End If 
  6715.  End If 
  6716.  DREZIONES(2,STANZA,EDIFICIO)=DREZIONE
  6717. End If 
  6718. DREZIONE=DREZIONES(3,STANZA,EDIFICIO)
  6719. Cls 
  6720. Print "Direzione SudEst della stanza";STANZA;">";
  6721. E=DREZIONE/$10000
  6722. If E>0
  6723.  S=DREZIONE mod $10000
  6724.  Print "edificio";E;" stanza";S
  6725. Else 
  6726.  If DREZIONE<$FFFF
  6727.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6728.  Else 
  6729.   Print " nessuno"
  6730.  End If 
  6731. End If 
  6732. Print At(0,ULTIMALINEA-1);"Direzione SudEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6733. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6734. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6735. If NUMEROLUOGO$<>""
  6736.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6737.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6738.   If NUMEROEDIFICIO$<>""
  6739.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6740.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6741.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6742.    If NUMEROSTANZA$<>""
  6743.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6744.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6745.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6746.    End If 
  6747.   End If 
  6748.  Else 
  6749.   If NUMEROLUOGO$="n"
  6750.    DREZIONE=$FFFF
  6751.   Else 
  6752.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6753.   End If 
  6754.  End If 
  6755.  DREZIONES(3,STANZA,EDIFICIO)=DREZIONE
  6756. End If 
  6757. DREZIONE=DREZIONES(4,STANZA,EDIFICIO)
  6758. Cls 
  6759. Print "Direzione Sud della stanza";STANZA;">";
  6760. E=DREZIONE/$10000
  6761. If E>0
  6762.  S=DREZIONE mod $10000
  6763.  Print "edificio";E;" stanza";S
  6764. Else 
  6765.  If DREZIONE<$FFFF
  6766.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6767.  Else 
  6768.   Print " nessuno"
  6769.  End If 
  6770. End If 
  6771. Print At(0,ULTIMALINEA-1);"Direzione Sud: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6772. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6773. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6774. If NUMEROLUOGO$<>""
  6775.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6776.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6777.   If NUMEROEDIFICIO$<>""
  6778.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6779.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6780.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6781.    If NUMEROSTANZA$<>""
  6782.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6783.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6784.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6785.    End If 
  6786.   End If 
  6787.  Else 
  6788.   If NUMEROLUOGO$="n"
  6789.    DREZIONE=$FFFF
  6790.   Else 
  6791.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6792.   End If 
  6793.  End If 
  6794.  DREZIONES(4,STANZA,EDIFICIO)=DREZIONE
  6795. End If 
  6796. DREZIONE=DREZIONES(5,STANZA,EDIFICIO)
  6797. Cls 
  6798. Print "Direzione SudOvest della stanza";STANZA;">";
  6799. E=DREZIONE/$10000
  6800. If E>0
  6801.  S=DREZIONE mod $10000
  6802.  Print "edificio";E;" stanza";S
  6803. Else 
  6804.  If DREZIONE<$FFFF
  6805.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6806.  Else 
  6807.   Print " nessuno"
  6808.  End If 
  6809. End If 
  6810. Print At(0,ULTIMALINEA-1);"Direzione SudOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6811. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6812. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6813. If NUMEROLUOGO$<>""
  6814.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6815.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6816.   If NUMEROEDIFICIO$<>""
  6817.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6818.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6819.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6820.    If NUMEROSTANZA$<>""
  6821.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6822.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6823.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6824.    End If 
  6825.   End If 
  6826.  Else 
  6827.   If NUMEROLUOGO$="n"
  6828.    DREZIONE=$FFFF
  6829.   Else 
  6830.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6831.   End If 
  6832.  End If 
  6833.  DREZIONES(5,STANZA,EDIFICIO)=DREZIONE
  6834. End If 
  6835. DREZIONE=DREZIONES(6,STANZA,EDIFICIO)
  6836. Cls 
  6837. Print "Direzione Ovest della stanza";STANZA;">";
  6838. E=DREZIONE/$10000
  6839. If E>0
  6840.  S=DREZIONE mod $10000
  6841.  Print "edificio";E;" stanza";S
  6842. Else 
  6843.  If DREZIONE<$FFFF
  6844.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6845.  Else 
  6846.   Print " nessuno"
  6847.  End If 
  6848. End If 
  6849. Print At(0,ULTIMALINEA-1);"Direzione Ovest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6850. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6851. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6852. If NUMEROLUOGO$<>""
  6853.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6854.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6855.   If NUMEROEDIFICIO$<>""
  6856.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6857.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6858.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6859.    If NUMEROSTANZA$<>""
  6860.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6861.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6862.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6863.    End If 
  6864.   End If 
  6865.  Else 
  6866.   If NUMEROLUOGO$="n"
  6867.    DREZIONE=$FFFF
  6868.   Else 
  6869.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6870.   End If 
  6871.  End If 
  6872.  DREZIONES(6,STANZA,EDIFICIO)=DREZIONE
  6873. End If 
  6874. DREZIONE=DREZIONES(7,STANZA,EDIFICIO)
  6875. Cls 
  6876. Print "Direzione NordOvest della stanza";STANZA;">";
  6877. E=DREZIONE/$10000
  6878. If E>0
  6879.  S=DREZIONE mod $10000
  6880.  Print "edificio";E;" stanza";S
  6881. Else 
  6882.  If DREZIONE<$FFFF
  6883.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6884.  Else 
  6885.   Print " nessuno"
  6886.  End If 
  6887. End If 
  6888. Print At(0,ULTIMALINEA-1);"Direzione NordOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6889. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6890. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6891. If NUMEROLUOGO$<>""
  6892.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6893.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6894.   If NUMEROEDIFICIO$<>""
  6895.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6896.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6897.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6898.    If NUMEROSTANZA$<>""
  6899.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6900.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6901.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6902.    End If 
  6903.   End If 
  6904.  Else 
  6905.   If NUMEROLUOGO$="n"
  6906.    DREZIONE=$FFFF
  6907.   Else 
  6908.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6909.   End If 
  6910.  End If 
  6911.  DREZIONES(7,STANZA,EDIFICIO)=DREZIONE
  6912. End If 
  6913. DREZIONE=DREZIONES(8,STANZA,EDIFICIO)
  6914. Cls 
  6915. Print "Direzione Sopra della stanza";STANZA;">";
  6916. E=DREZIONE/$10000
  6917. If E>0
  6918.  S=DREZIONE mod $10000
  6919.  Print "edificio";E;" stanza";S
  6920. Else 
  6921.  If DREZIONE<$FFFF
  6922.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6923.  Else 
  6924.   Print " nessuno"
  6925.  End If 
  6926. End If 
  6927. Print At(0,ULTIMALINEA-1);"Direzione Sopra: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6928. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6929. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6930. If NUMEROLUOGO$<>""
  6931.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6932.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6933.   If NUMEROEDIFICIO$<>""
  6934.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6935.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6936.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6937.    If NUMEROSTANZA$<>""
  6938.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6939.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6940.     If NUMEROSTANZA=0
  6941.      DREZIONE=NUMEROEDIFICIO*$10000
  6942.     Else 
  6943.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6944.     End If 
  6945.    End If 
  6946.   End If 
  6947.  Else 
  6948.   If NUMEROLUOGO$="n"
  6949.    DREZIONE=$FFFF
  6950.   Else 
  6951.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6952.   End If 
  6953.  End If 
  6954.  DREZIONES(8,STANZA,EDIFICIO)=DREZIONE
  6955. End If 
  6956. DREZIONE=DREZIONES(9,STANZA,EDIFICIO)
  6957. Cls 
  6958. Print "Direzione Sotto della stanza";STANZA;">luogo";
  6959. E=DREZIONE/$10000
  6960. If E>0
  6961.  S=DREZIONE mod $10000
  6962.  Print "edificio";E;" stanza";S
  6963. Else 
  6964.  If DREZIONE<$FFFF
  6965.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6966.  Else 
  6967.   Print " nessuno"
  6968.  End If 
  6969. End If 
  6970. Print At(0,ULTIMALINEA-1);"Direzione Sotto: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6971. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6972. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6973. If NUMEROLUOGO$<>""
  6974.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6975.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6976.   If NUMEROEDIFICIO$<>""
  6977.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6978.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6979.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6980.    If NUMEROSTANZA$<>""
  6981.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6982.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6983.     If NUMEROSTANZA=0
  6984.      DREZIONE=NUMEROEDIFICIO*$10000
  6985.     Else 
  6986.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6987.     End If 
  6988.    End If 
  6989.   End If 
  6990.  Else 
  6991.   If NUMEROLUOGO$="n"
  6992.    DREZIONE=$FFFF
  6993.   Else 
  6994.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6995.   End If 
  6996.  End If 
  6997.  DREZIONES(9,STANZA,EDIFICIO)=DREZIONE
  6998. End If 
  6999. Cls 
  7000. Print "Soldi nella stanza";STANZA;">";Str$(SOLDIS(STANZA,EDIFICIO))-" ";" ";
  7001. If SOLDIS(STANZA,EDIFICIO)=1 Then Print "soldo" Else Print "soldi"
  7002. Locate 0,ULTIMALINEA
  7003. Input "Nuovi soldi del luogo"+Str$(PERSONAGGIO)+" (0-65535)>";SOLDINELLASTANZA$;
  7004. If SOLDINELLASTANZA$<>""
  7005.  SOLDINELLASTANZA=Val(SOLDINELLASTANZA$)
  7006.  Proc LIMITI[SOLDINELLASTANZA,0,65535] : SOLDIS(STANZA,EDIFICIO)=Param
  7007. End If 
  7008. Curs Off 
  7009. End Proc
  7010. Procedure MORTE[P]
  7011. If P=0
  7012.  COMPIUTAAZIONE=0
  7013.  Print NOMEP$(0);" ï¿½ morto. La tua avventura ï¿½ finita."
  7014.  Print "La tua avventura ï¿½ durata";
  7015.  GIORNI=TEMP0TRASCORSO/1440
  7016.  If GIORNI>0
  7017.   Print GIORNI;
  7018.   If GIORNI=1
  7019.    Print " giorno"; Else Print " giorni";
  7020.   End If 
  7021.  End If 
  7022.  _ORE=TEMP0TRASCORSO/60 mod 24
  7023.  If _ORE>0
  7024.   Print _ORE;
  7025.   If _ORE=1
  7026.    Print " ora"; Else Print " ore";
  7027.   End If 
  7028.  End If 
  7029.  M1NUTI=TEMP0TRASCORSO mod 60 : Print M1NUTI;
  7030.  If M1NUTI=1
  7031.   Print " minuto"; Else Print " minuti";
  7032.  End If 
  7033.  Print " di gioco."
  7034.  Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  7035. Else 
  7036.  If Btst(2,TIPOP(0))=False
  7037.   Remember X : Remember Y 
  7038.   Print NOMEP$(P);" ï¿½ mort";
  7039.   If Btst(1,TIPOP(P))=True
  7040.    Print "a"
  7041.   Else 
  7042.    Print "o"
  7043.   End If 
  7044.  End If 
  7045. End If 
  7046. For A=0 To NUMEROO
  7047.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  7048.  POSIZIONEO(A)=POSIZIONEP(P)
  7049.   If Btst(1,TIPOO(A))=True
  7050.    Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  7051.   Else 
  7052.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  7053.   End If 
  7054.   If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  7055.    For B=0 To NUMEROO
  7056.     If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  7057.      If Btst(1,TIPOO(B))=True
  7058.       Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  7059.      Else 
  7060.       Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  7061.      End If 
  7062.     End If 
  7063.    Next B
  7064.    For B=1 To NUMEROP
  7065.     If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(B))=False
  7066.      Add PESONETTOP(P),-PESOP(B)*1000
  7067.      Add PESONETTOP(P),-PESONETTOP(B)
  7068.     End If 
  7069.    Next B
  7070.   End If 
  7071.  End If 
  7072. Next A
  7073. Add SOLDIL(POSIZIONEP(P)),SOLDIP(P)
  7074. Add PESONETTOP(P),-SOLDIP(P)*PESOS
  7075. SOLDIP(P)=0
  7076. End Proc
  7077. Procedure MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  7078. If AZIONE=1
  7079.  Print "dai ai personaggi";PARA;" oggett";
  7080.  If PARA=1
  7081.   Print "o"
  7082.  Else 
  7083.   Print "i"
  7084.  End If 
  7085. Else If AZIONE=2
  7086.  Print "dai ai personaggi";PARA;" ";
  7087.  Proc LIMITI[PARB,0,NUMEROCO] : PARB=Param
  7088.  If PARA=1
  7089.   Print NOMESCO$(PARB)
  7090.  Else 
  7091.   Print NOMEPCO$(PARB)
  7092.  End If 
  7093. Else If AZIONE=3
  7094.  Print "dai ai personaggi";PARA;" oggett";
  7095.  If PARA=1
  7096.   Print "o ";
  7097.  Else 
  7098.   Print "i ";
  7099.  End If 
  7100.  Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7101. Else If AZIONE=4
  7102.  Print "dai ai personaggi";PARA;" personaggi";
  7103.  If PARA=1
  7104.   Print "o"
  7105.  Else 
  7106.   Print 
  7107.  End If 
  7108. Else If AZIONE=5
  7109.  Print "dai ai personaggi ";
  7110.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7111.  Print NOMEP$(PARA)
  7112. Else If AZIONE=6
  7113.  Print "dai a ";
  7114.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7115.  Print NOMEP$(PARA);PARB;" oggett";
  7116.  If PARB=1
  7117.   Print "o"
  7118.  Else 
  7119.   Print "i"
  7120.  End If 
  7121. Else If AZIONE=7
  7122.  Print "dai a ";
  7123.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7124.  Print NOMEP$(PARA);PARB;" ";
  7125.  Proc LIMITI[PARC,0,NUMEROCO] : PARC=Param
  7126.  If PARB=1
  7127.   Print NOMESCO$(PARC)
  7128.  Else 
  7129.   Print NOMEPCO$(PARC)
  7130.  End If 
  7131. Else If AZIONE=8
  7132.  Print "dai a ";
  7133.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7134.  Print NOMEP$(PARA);PARB;" oggett";
  7135.  If PARB=1
  7136.   Print "o ";
  7137.  Else 
  7138.   Print "i ";
  7139.  End If 
  7140.  Proc MOSTRACATEGORIAPERAZIONE[PARC]
  7141. Else If AZIONE=9
  7142.  Print "dai a ";
  7143.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7144.  Print NOMEP$(PARA);PARB;" personaggi";
  7145.  If PARB=1
  7146.   Print "o"
  7147.  Else 
  7148.   Print 
  7149.  End If 
  7150. Else If AZIONE=10
  7151.  Print "dai a ";
  7152.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7153.  Print NOMEP$(PARA);" ";
  7154.  Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7155.  Print NOMEP$(PARB)
  7156. Else If AZIONE=11
  7157.  Print "lascia";PARA;" oggett";
  7158.  If PARA=1
  7159.   Print "o"
  7160.  Else 
  7161.   Print "i"
  7162.  End If 
  7163. Else If AZIONE=12
  7164.  Print "lascia";PARA;" ";
  7165.  Proc LIMITI[PARB,0,NUMEROCO] : PARB=Param
  7166.  If PARA=1
  7167.   Print NOMESCO$(PARB)
  7168.  Else 
  7169.   Print NOMEPCO$(PARB)
  7170.  End If 
  7171. Else If AZIONE=13
  7172.  Print "lascia";PARA;" oggett";
  7173.  If PARA=1
  7174.   Print "o ";
  7175.  Else 
  7176.   Print "i ";
  7177.  End If 
  7178.  Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7179. Else If AZIONE=14
  7180.  Print "lascia";PARA;" personaggi";
  7181.  If PARA=1
  7182.   Print "o"
  7183.  Else 
  7184.   Print 
  7185.  End If 
  7186. Else If AZIONE=15
  7187.  Print "lascia ";
  7188.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7189.  Print NOMEP$(PARA)
  7190. Else If AZIONE=16
  7191.  Print "muoviti"
  7192. Else If AZIONE=17
  7193.  Print "prendi";PARA;" oggett";
  7194.  If PARA=1
  7195.   Print "o"
  7196.  Else 
  7197.   Print "i"
  7198.  End If 
  7199. Else If AZIONE=18
  7200.  Print "prendi";PARA;" ";
  7201.  Proc LIMITI[PARB,0,NUMEROCO] : PARB=Param
  7202.  If PARA=1
  7203.   Print NOMESCO$(PARB)
  7204.  Else 
  7205.   Print NOMEPCO$(PARB)
  7206.  End If 
  7207. Else If AZIONE=19
  7208.  Print "prendi";PARA;" oggett";
  7209.  If PARA=1
  7210.   Print "o ";
  7211.  Else 
  7212.   Print "i ";
  7213.  End If 
  7214.  Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7215. Else If AZIONE=20
  7216.  Print "prendi";PARA;" personaggi";
  7217.  If PARA=1
  7218.   Print "o"
  7219.  Else 
  7220.   Print 
  7221.  End If 
  7222. Else If AZIONE=21
  7223.  Print "prendi ";
  7224.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7225.  Print NOMEP$(PARA)
  7226. Else If AZIONE=22
  7227.  Print "segui"
  7228. Else If AZIONE=23
  7229.  Print "segui ";
  7230.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7231.  Print NOMEP$(PARA)
  7232. Else If AZIONE=24
  7233.  Print "usa un'oggetto su";PARA;" oggett";
  7234.  If PARA=1
  7235.   Print "o"
  7236.  Else 
  7237.   Print "i"
  7238.  End If 
  7239. Else If AZIONE=25
  7240.  Print "usa un'oggetto su";PARA;" ";
  7241.  Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7242.  If PARA=1
  7243.   Print NOMESCO$(PARB)
  7244.  Else 
  7245.   Print NOMEPCO$(PARB)
  7246.  End If 
  7247. Else If AZIONE=26
  7248.  Print "usa un'oggetto su";PARA;" oggett";
  7249.  If PARA=1
  7250.   Print "o ";
  7251.  Else 
  7252.   Print "i ";
  7253.  End If 
  7254.  Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7255. Else If AZIONE=27
  7256.  Print "usa un'oggetto su";PARA;" personaggi";
  7257.  If PARA=1
  7258.   Print "o"
  7259.  Else 
  7260.   Print 
  7261.  End If 
  7262. Else If AZIONE=28
  7263.  Print "usa un'oggetto su ";
  7264.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7265.  Print NOMEP$(PARA)
  7266. Else If AZIONE=29
  7267.  Print "usa 1 ";
  7268.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7269.  Print NOMESCO$(PARA);" su";PARB;" oggett";
  7270.  If PARB=1
  7271.   Print "o"
  7272.  Else 
  7273.   Print "i"
  7274.  End If 
  7275. Else If AZIONE=30
  7276.  Print "usa 1 ";
  7277.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7278.  Print NOMESCO$(PARA);" su";PARB;" ";
  7279.  Proc LIMITI[PARC,0,NUMEROCO] : PARC=Param
  7280.  If PARB=1
  7281.   Print NOMESCO$(PARC)
  7282.  Else 
  7283.   Print NOMEPCO$(PARC)
  7284.  End If 
  7285. Else If AZIONE=31
  7286.  Print "usa 1 ";
  7287.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7288.  Print NOMESCO$(PARA);" su";PARB;" oggett";
  7289.  If PARB=1
  7290.   Print "o ";
  7291.  Else 
  7292.   Print "i ";
  7293.  End If 
  7294.  Proc MOSTRACATEGORIAPERAZIONE[PARC]
  7295. Else If AZIONE=32
  7296.  Print "usa 1 ";
  7297.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7298.  Print NOMESCO$(PARA);" su";PARB;" personaggi";
  7299.  If PARB=1
  7300.   Print "o"
  7301.  Else 
  7302.   Print 
  7303.  End If 
  7304. Else If AZIONE=33
  7305.  Print "usa 1 ";
  7306.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7307.  Print NOMESCO$(PARA);" su ";
  7308.  Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7309.  Print NOMEP$(PARB)
  7310. Else If AZIONE=34
  7311.  Print "usa un'oggetto ";
  7312.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7313.  Print Space$(9);"su";PARB;" oggett";
  7314.  If PARB=1
  7315.   Print "o"
  7316.  Else 
  7317.   Print "i"
  7318.  End If 
  7319. Else If AZIONE=35
  7320.  Print "usa un'oggetto ";
  7321.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7322.  Print Space$(9);"su";PARB;" ";
  7323.  Proc LIMITI[PARC,0,NUMEROCO] : PARC=Param
  7324.  If PARB=1
  7325.   Print NOMESCO$(PARC)
  7326.  Else 
  7327.   Print NOMEPCO$(PARC)
  7328.  End If 
  7329. Else If AZIONE=36
  7330.  Print "usa un'oggetto ";
  7331.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7332.  Print Space$(9);"su";PARB;" oggett";
  7333.  If PARB=1
  7334.   Print "o ";
  7335.  Else 
  7336.   Print "i ";
  7337.  End If 
  7338.  Proc MOSTRACATEGORIAPERAZIONE[PARC]
  7339. Else If AZIONE=37
  7340.  Print "usa un'oggetto ";
  7341.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7342.  Print Space$(9);"su";PARB;" personaggi";
  7343.  If PARB=1
  7344.   Print "o"
  7345.  Else 
  7346.   Print 
  7347.  End If 
  7348. Else If AZIONE=38
  7349.  Print "usa un'oggetto ";
  7350.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7351.  Print Space$(9);"su ";
  7352.  Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7353.  Print NOMEP$(PARB)
  7354. Else If AZIONE=39
  7355.  Print "usati un'oggetto"
  7356. Else If AZIONE=40
  7357.  Print "usati un'oggetto ";
  7358.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7359.  Print NOMESCO$(PARA)
  7360. Else If AZIONE=41
  7361.  Print "usati un'oggetto ";
  7362.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7363. End If 
  7364. End Proc
  7365. Procedure MOSTRACATEGORIADEGLIOGGETTI
  7366. Cls 
  7367. If M0DIFICA=False
  7368.  Proc TIC[MESSAGGIO3$,0] : Print 
  7369. End If 
  7370. Print "Nome singolare e plurale della categoria";CATEGORIADEGLIOGGETTI;" degli oggetti>"
  7371. Print NOMESCO$(CATEGORIADEGLIOGGETTI);"<=>";NOMEPCO$(CATEGORIADEGLIOGGETTI)
  7372. Print "Peso della categoria";CATEGORIADEGLIOGGETTI;" degli oggetti>";
  7373. PESOOGGETTO=PESOCO(CATEGORIADEGLIOGGETTI)
  7374. Print Str$(PESOOGGETTO)-" ";" ";
  7375. If PESOOGGETTO=1
  7376.  Print "grammo"
  7377. Else 
  7378.  Print "grammi"
  7379. End If 
  7380. Print "Nome singolare e plurale della categoria";CATEGORIADEGLIOGGETTI;" dei resti degli oggetti>"
  7381. Print NOMESRO$(CATEGORIADEGLIOGGETTI);"<=>";NOMEPRO$(CATEGORIADEGLIOGGETTI)
  7382. Print "Peso della categoria";CATEGORIADEGLIOGGETTI;" dei resti degli oggetti>";
  7383. PESORESTOOGGETTO=PESORESTOCO(CATEGORIADEGLIOGGETTI)
  7384. Print Str$(PESORESTOOGGETTO)-" ";" ";
  7385. If PESORESTOOGGETTO=1
  7386.  Print "grammo"
  7387. Else 
  7388.  Print "grammi"
  7389. End If 
  7390. Print "Parametro della categoria";CATEGORIADEGLIOGGETTI;" degli oggetti>";
  7391. Print Str$(PARATIPOCO(CATEGORIADEGLIOGGETTI))-" "
  7392. If Btst(0,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Commestibile"
  7393. If Btst(1,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Contenitore"
  7394. If Btst(2,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Difensivo"
  7395. If Btst(3,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Leggibile"
  7396. If Btst(4,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Liquido"
  7397. If Btst(5,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Magico"
  7398. If Btst(6,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Offensivo"
  7399. If Btst(7,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Residente"
  7400. If Btst(4,TIPOCO(CATEGORIADEGLIOGGETTI))=False Then Print "Solido"
  7401. If Btst(8,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Trasferibile"
  7402. If Btst(9,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Trasparente"
  7403. If Btst(10,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Vincolato"
  7404. End Proc
  7405. Procedure MOSTRACATEGORIAPERAZIONE[CATEGORIA]
  7406. If Btst(0,CATEGORIA)=True Then Print "commestibile ";
  7407. If Btst(1,CATEGORIA)=True Then Print "contenitore ";
  7408. If Btst(2,CATEGORIA)=True Then Print "difensivo ";
  7409. If Btst(3,CATEGORIA)=True Then Print "leggibile ";
  7410. If Btst(4,CATEGORIA)=True Then Print "liquido "; Else Print "solido ";
  7411. If Btst(5,CATEGORIA)=True Then Print "magico ";
  7412. If Btst(6,CATEGORIA)=True Then Print "offensivo ";
  7413. If Btst(8,CATEGORIA)=True Then Print "trasferibile ";
  7414. If Btst(9,CATEGORIA)=True Then Print "trasparente ";
  7415. If Btst(10,CATEGORIA)=True Then Print "vincolato ";
  7416. Print 
  7417. End Proc
  7418. Procedure MOSTRACATEGORIAPERINSERIMENTO[P]
  7419. Repeat 
  7420.  Cls 
  7421.  Print "Nome del personaggio";P;">";NOMEP$(P)
  7422.  Print At(0,ULTIMALINEA-11);"Categoria";CATEGORIA;" degli oggetti>";NOMEPCO$(CATEGORIA)
  7423.  If Btst(0,TIPOCO(CATEGORIA))=True Then Print "commestibile "
  7424.  If Btst(1,TIPOCO(CATEGORIA))=True Then Print "contenitore "
  7425.  If Btst(2,TIPOCO(CATEGORIA))=True Then Print "difensivo "
  7426.  If Btst(3,TIPOCO(CATEGORIA))=True Then Print "leggibile "
  7427.  If Btst(4,TIPOCO(CATEGORIA))=True Then Print "liquido " Else Print "solido "
  7428.  If Btst(5,TIPOCO(CATEGORIA))=True Then Print "magico "
  7429.  If Btst(6,TIPOCO(CATEGORIA))=True Then Print "offensivo "
  7430.  If Btst(8,TIPOCO(CATEGORIA))=True Then Print "trasferibile "
  7431.  If Btst(9,TIPOCO(CATEGORIA))=True Then Print "trasparente "
  7432.  If Btst(10,TIPOCO(CATEGORIA))=True Then Print "vincolato "
  7433.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scegli la categoria Spazio conferma",ULTIMALINEA]
  7434.  Repeat 
  7435.   TASTOPREMUTO$=Inkey$
  7436.  Until TASTOPREMUTO$<>""
  7437.  If TASTOPREMUTO$=Cup$ Then Add CATEGORIA,-1,0 To NUMEROCO
  7438.  If TASTOPREMUTO$=Cdown$ Then Add CATEGORIA,1,0 To NUMEROCO
  7439. Until TASTOPREMUTO$=" "
  7440. End Proc[TIPOCO(CATEGORIA)]
  7441. Procedure MOSTRAGLIEDIFICI
  7442. Shared TASTOPREMUTO$
  7443. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta edificio...C -> carica un"
  7444. MESSAGGIO2$=MESSAGGIO2$+" file di Adventures Conceiver...D -> mostra il desti"
  7445. MESSAGGIO2$=MESSAGGIO2$+"no (scopo) del gioco...G -> gioca un'avventura...I -"
  7446. MESSAGGIO2$=MESSAGGIO2$+"> mostra le stanze dell'edificio corrente...K -> mos"
  7447. MESSAGGIO2$=MESSAGGIO2$+"tra le categorie degli oggetti...L -> mostra i luogh"
  7448. MESSAGGIO2$=MESSAGGIO2$+"i...M -> modifica un'avventura...O -> mostra gli ogg"
  7449. MESSAGGIO2$=MESSAGGIO2$+"etti...P -> mostra i personaggi...R -> mostra le reg"
  7450. MESSAGGIO2$=MESSAGGIO2$+"ioni...S -> salva un file di Adventures Conceiver..."
  7451. MESSAGGIO2$=MESSAGGIO2$+"? -> mostra i meriti...Esc -> esci da Adventures Con"
  7452. MESSAGGIO2$=MESSAGGIO2$+"ceiver..."
  7453. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7454. Repeat 
  7455.  Proc MOSTRAEDIFICIO
  7456.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7457.  CARATTEREMESSAGGIO=0
  7458.  Repeat 
  7459.   TASTOPREMUTO$=Inkey$
  7460.   Proc MESSAGGIO[MESSAGGIO2$]
  7461.  Until TASTOPREMUTO$<>""
  7462.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7463.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7464.  If TASTOPREMUTO$="d" Then Exit 
  7465.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7466.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7467.  If TASTOPREMUTO$="k" Then Exit 
  7468.  If TASTOPREMUTO$="l" Then Exit 
  7469.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7470.  If TASTOPREMUTO$="o" Then Exit 
  7471.  If TASTOPREMUTO$="p" Then Exit 
  7472.  If TASTOPREMUTO$="r" Then Exit 
  7473.  If TASTOPREMUTO$="s"
  7474.   Proc DAVARIABILIABANCO[False]
  7475.   If SENZAMEMORIA=False
  7476.    Proc DAVARIABILIABANCO[True]
  7477.    Proc SALVAUNFILE
  7478.   End If 
  7479.  End If 
  7480.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7481.  If EDIFICIO>-1
  7482.   If TASTOPREMUTO$=Cup$
  7483.    Add EDIFICIO,-1,0 To NUMEROE
  7484.   End If 
  7485.   If TASTOPREMUTO$=Cdown$
  7486.    Add EDIFICIO,1,0 To NUMEROE
  7487.   End If 
  7488.  End If 
  7489. Until TASTOPREMUTO$=Chr$(27)
  7490. End Proc
  7491. Procedure MOSTRAGLIOGGETTI
  7492. Shared TASTOPREMUTO$
  7493. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta oggetto...C -> carica un "
  7494. MESSAGGIO2$=MESSAGGIO2$+"file di Adventures Conceiver...D -> mostra il destin"
  7495. MESSAGGIO2$=MESSAGGIO2$+"o (scopo) del gioco...E -> mostra gli edifici...G ->"
  7496. MESSAGGIO2$=MESSAGGIO2$+" gioca un'avventura...I -> mostra le stanze dell'edi"
  7497. MESSAGGIO2$=MESSAGGIO2$+"ficio corrente...K -> mostra le categorie degli ogge"
  7498. MESSAGGIO2$=MESSAGGIO2$+"tti...L -> mostra i luoghi M -> modifica un'avventur"
  7499. MESSAGGIO2$=MESSAGGIO2$+"a...P -> mostra i personaggi...R -> mostra le region"
  7500. MESSAGGIO2$=MESSAGGIO2$+"i...S -> salva un file di Adventures Conceiver...? -"
  7501. MESSAGGIO2$=MESSAGGIO2$+"> mostra i meriti...Esc -> esci da Adventures Concei"
  7502. MESSAGGIO2$=MESSAGGIO2$+"ver..."
  7503. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7504. Repeat 
  7505.  Proc MOSTRAOGGETTO
  7506.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7507.  CARATTEREMESSAGGIO=0
  7508.  Repeat 
  7509.   TASTOPREMUTO$=Inkey$
  7510.   Proc MESSAGGIO[MESSAGGIO2$]
  7511.  Until TASTOPREMUTO$<>""
  7512.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7513.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7514.  If TASTOPREMUTO$="d" Then Exit 
  7515.  If TASTOPREMUTO$="e" Then Exit 
  7516.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7517.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7518.  If TASTOPREMUTO$="k" Then Exit 
  7519.  If TASTOPREMUTO$="l" Then Exit 
  7520.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7521.  If TASTOPREMUTO$="p" Then Exit 
  7522.  If TASTOPREMUTO$="r" Then Exit 
  7523.  If TASTOPREMUTO$="s"
  7524.   Proc DAVARIABILIABANCO[False]
  7525.   If SENZAMEMORIA=False
  7526.    Proc DAVARIABILIABANCO[True]
  7527.    Proc SALVAUNFILE
  7528.   End If 
  7529.  End If 
  7530.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7531.  If TASTOPREMUTO$=Cup$ Then Add OGGETTO,-1,0 To NUMEROO
  7532.  If TASTOPREMUTO$=Cdown$ Then Add OGGETTO,1,0 To NUMEROO
  7533. Until TASTOPREMUTO$=Chr$(27)
  7534. End Proc
  7535. Procedure MOSTRAEDIFICIO
  7536. Cls 
  7537. If M0DIFICA=False
  7538.  Proc TIC[MESSAGGIO3$,0] : Print 
  7539. End If 
  7540. If EDIFICIO>-1
  7541.  Print "Edificio";EDIFICIO;":"
  7542.  Print "Nome>";NOMEE$(EDIFICIO)
  7543.  Print "Posizione>luogo";POSIZIONEE(EDIFICIO);" nome>";NOMEL$(POSIZIONEE(EDIFICIO))
  7544.  Print "Numero delle stanze>";Str$(NUMEROS(EDIFICIO)+1)-" "
  7545. Else 
  7546.  Print "Nessun edificio"
  7547. End If 
  7548. End Proc
  7549. Procedure MOSTRAILDESTINODELGIOCO
  7550. Shared TASTOPREMUTO$
  7551. MESSAGGIO2$="C -> carica un file di Adventures Conceiver...E -> mostra gli ed"
  7552. MESSAGGIO2$=MESSAGGIO2$+"ifici...G -> gioca un'avventura...I -> mostra le sta"
  7553. MESSAGGIO2$=MESSAGGIO2$+"nze dell'edificio corrente...K -> mostra le categori"
  7554. MESSAGGIO2$=MESSAGGIO2$+"e degli oggetti...L -> mostra i luoghi...M -> modifi"
  7555. MESSAGGIO2$=MESSAGGIO2$+"ca un'avventura...O -> mostra gli oggetti...P -> mos"
  7556. MESSAGGIO2$=MESSAGGIO2$+"tra i personaggi...R -> mostra le regioni...S -> sal"
  7557. MESSAGGIO2$=MESSAGGIO2$+"va un file di Adventures Conceiver...? -> mostra i m"
  7558. MESSAGGIO2$=MESSAGGIO2$+"eriti...Esc -> esci da Adventures Conceiver..."
  7559. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7560. Repeat 
  7561.  Proc SCOPODELGIOCO[True]
  7562.  Print "Nemici>";
  7563.  If ANEMICI=True Then Print "attivati" Else Print "disattivati"
  7564.  Print "Musica>";
  7565.  If _MUSICA=True Then Print "attivata" Else Print "disattivata"
  7566.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7567.  CARATTEREMESSAGGIO=0
  7568.  Repeat 
  7569.   TASTOPREMUTO$=Inkey$
  7570.   Proc MESSAGGIO[MESSAGGIO2$]
  7571.  Until TASTOPREMUTO$<>""
  7572.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7573.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7574.  If TASTOPREMUTO$="e" Then Exit 
  7575.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7576.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7577.  If TASTOPREMUTO$="k" Then Exit 
  7578.  If TASTOPREMUTO$="l" Then Exit 
  7579.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7580.  If TASTOPREMUTO$="o" Then Exit 
  7581.  If TASTOPREMUTO$="p" Then Exit 
  7582.  If TASTOPREMUTO$="r" Then Exit 
  7583.  If TASTOPREMUTO$="s"
  7584.   Proc DAVARIABILIABANCO[False]
  7585.   If SENZAMEMORIA=False
  7586.    Proc DAVARIABILIABANCO[True]
  7587.    Proc SALVAUNFILE
  7588.   End If 
  7589.  End If 
  7590.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7591. Until TASTOPREMUTO$=Chr$(27)
  7592. End Proc
  7593. Procedure MOSTRAILUOGHI
  7594. Shared TASTOPREMUTO$
  7595. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta luogo...C -> carica un fi"
  7596. MESSAGGIO2$=MESSAGGIO2$+"le di Adventures Conceiver...D -> mostra il destino "
  7597. MESSAGGIO2$=MESSAGGIO2$+"(scopo) del gioco...E -> mostra gli edifici...G -> g"
  7598. MESSAGGIO2$=MESSAGGIO2$+"ioca un'avventura...I -> mostra le stanze dell'edifi"
  7599. MESSAGGIO2$=MESSAGGIO2$+"cio corrente...K -> mostra le categorie degli oggett"
  7600. MESSAGGIO2$=MESSAGGIO2$+"i...M -> modifica un'avventura...O -> mostra gli ogg"
  7601. MESSAGGIO2$=MESSAGGIO2$+"etti...P -> mostra i personaggi...R -> mostra le reg"
  7602. MESSAGGIO2$=MESSAGGIO2$+"ioni...S -> salva un file di Adventures Conceiver..."
  7603. MESSAGGIO2$=MESSAGGIO2$+"? -> mostra i meriti...Esc -> esci da Adventures Con"
  7604. MESSAGGIO2$=MESSAGGIO2$+"ceiver..."
  7605. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7606. Repeat 
  7607.  Proc MOSTRALUOGO
  7608.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7609.  CARATTEREMESSAGGIO=0
  7610.  Repeat 
  7611.   TASTOPREMUTO$=Inkey$
  7612.   Proc MESSAGGIO[MESSAGGIO2$]
  7613.  Until TASTOPREMUTO$<>""
  7614.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7615.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7616.  If TASTOPREMUTO$="d" Then Exit 
  7617.  If TASTOPREMUTO$="e" Then Exit 
  7618.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7619.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7620.  If TASTOPREMUTO$="k" Then Exit 
  7621.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7622.  If TASTOPREMUTO$="o" Then Exit 
  7623.  If TASTOPREMUTO$="p" Then Exit 
  7624.  If TASTOPREMUTO$="r" Then Exit 
  7625.  If TASTOPREMUTO$="s"
  7626.   Proc DAVARIABILIABANCO[False]
  7627.   If SENZAMEMORIA=False
  7628.    Proc DAVARIABILIABANCO[True]
  7629.    Proc SALVAUNFILE
  7630.   End If 
  7631.  End If 
  7632.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7633.  If TASTOPREMUTO$=Cup$ Then Add LUOGO,-1,0 To NUMEROL
  7634.  If TASTOPREMUTO$=Cdown$ Then Add LUOGO,1,0 To NUMEROL
  7635. Until TASTOPREMUTO$=Chr$(27)
  7636. End Proc
  7637. Procedure MOSTRAIPERSONAGGI
  7638. Shared TASTOPREMUTO$
  7639. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta personaggio...C -> carica"
  7640. MESSAGGIO2$=MESSAGGIO2$+" un file di Adventures Conceiver...D -> mostra il de"
  7641. MESSAGGIO2$=MESSAGGIO2$+"stino (scopo) del gioco...E -> mostra gli edifici..."
  7642. MESSAGGIO2$=MESSAGGIO2$+"G -> gioca un'avventura...I -> mostra le stanze dell"
  7643. MESSAGGIO2$=MESSAGGIO2$+"'edificio corrente...K -> mostra le categorie degli "
  7644. MESSAGGIO2$=MESSAGGIO2$+"oggetti...L -> mostra i luoghi...M -> modifica un'av"
  7645. MESSAGGIO2$=MESSAGGIO2$+"ventura...O -> mostra gli oggetti...R -> mostra le r"
  7646. MESSAGGIO2$=MESSAGGIO2$+"egioni...S -> salva un file di Adventures Conceiver."
  7647. MESSAGGIO2$=MESSAGGIO2$+"..? -> mostra i meriti...Esc -> esci da Adventures C"
  7648. MESSAGGIO2$=MESSAGGIO2$+"onceiver..."
  7649. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7650. Repeat 
  7651.  Proc MOSTRAPERSONAGGIO
  7652.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7653.  CARATTEREMESSAGGIO=0
  7654.  Repeat 
  7655.   TASTOPREMUTO$=Inkey$
  7656.   Proc MESSAGGIO[MESSAGGIO2$]
  7657.  Until TASTOPREMUTO$<>""
  7658.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7659.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7660.  If TASTOPREMUTO$="d" Then Exit 
  7661.  If TASTOPREMUTO$="e" Then Exit 
  7662.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7663.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7664.  If TASTOPREMUTO$="k" Then Exit 
  7665.  If TASTOPREMUTO$="l" Then Exit 
  7666.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7667.  If TASTOPREMUTO$="o" Then Exit 
  7668.  If TASTOPREMUTO$="r" Then Exit 
  7669.  If TASTOPREMUTO$="s"
  7670.   Proc DAVARIABILIABANCO[False]
  7671.   If SENZAMEMORIA=False
  7672.    Proc DAVARIABILIABANCO[True]
  7673.    Proc SALVAUNFILE
  7674.   End If 
  7675.  End If 
  7676.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7677.  If TASTOPREMUTO$=Cup$ Then Add PERSONAGGIO,-1,0 To NUMEROP
  7678.  If TASTOPREMUTO$=Cdown$ Then Add PERSONAGGIO,1,0 To NUMEROP
  7679. Until TASTOPREMUTO$=Chr$(27)
  7680. End Proc
  7681. Procedure MOSTRALECATEGORIEDEGLIOGGETTI
  7682. Shared TASTOPREMUTO$
  7683. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta categoria...C -> carica u"
  7684. MESSAGGIO2$=MESSAGGIO2$+"n file di Adventures Conceiver...D -> mostra il dest"
  7685. MESSAGGIO2$=MESSAGGIO2$+"ino (scopo) del gioco...E -> mostra gli edifici...G "
  7686. MESSAGGIO2$=MESSAGGIO2$+"-> gioca un'avventura...I -> mostra le stanze dell'e"
  7687. MESSAGGIO2$=MESSAGGIO2$+"dificio corrente...L -> mostra i luoghi...M -> modif"
  7688. MESSAGGIO2$=MESSAGGIO2$+"ica un'avventura...O -> mostra gli oggetti...P -> mo"
  7689. MESSAGGIO2$=MESSAGGIO2$+"stra i personaggi...R -> mostra le regioni...S -> sa"
  7690. MESSAGGIO2$=MESSAGGIO2$+"lva un file di Adventures Conceiver...? -> mostra i "
  7691. MESSAGGIO2$=MESSAGGIO2$+"meriti...Esc -> esci da Adventures Conceiver..."
  7692. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7693. Repeat 
  7694.  Proc MOSTRACATEGORIADEGLIOGGETTI
  7695.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7696.  CARATTEREMESSAGGIO=0
  7697.  Repeat 
  7698.   TASTOPREMUTO$=Inkey$
  7699.   Proc MESSAGGIO[MESSAGGIO2$]
  7700.  Until TASTOPREMUTO$<>""
  7701.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7702.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7703.  If TASTOPREMUTO$="d" Then Exit 
  7704.  If TASTOPREMUTO$="e" Then Exit 
  7705.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7706.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7707.  If TASTOPREMUTO$="l" Then Exit 
  7708.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7709.  If TASTOPREMUTO$="o" Then Exit 
  7710.  If TASTOPREMUTO$="p" Then Exit 
  7711.  If TASTOPREMUTO$="r" Then Exit 
  7712.  If TASTOPREMUTO$="s"
  7713.   Proc DAVARIABILIABANCO[False]
  7714.   If SENZAMEMORIA=False
  7715.    Proc DAVARIABILIABANCO[True]
  7716.    Proc SALVAUNFILE
  7717.   End If 
  7718.  End If 
  7719.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7720.  If TASTOPREMUTO$=Cup$ Then Add CATEGORIADEGLIOGGETTI,-1,0 To NUMEROCO
  7721.  If TASTOPREMUTO$=Cdown$ Then Add CATEGORIADEGLIOGGETTI,1,0 To NUMEROCO
  7722. Until TASTOPREMUTO$=Chr$(27)
  7723. End Proc
  7724. Procedure MOSTRALEREGIONI
  7725. Shared TASTOPREMUTO$
  7726. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta regione...C -> carica un "
  7727. MESSAGGIO2$=MESSAGGIO2$+"file di Adventures Conceiver...D -> mostra il destin"
  7728. MESSAGGIO2$=MESSAGGIO2$+"o (scopo) del gioco...E -> mostra gli edifici...G ->"
  7729. MESSAGGIO2$=MESSAGGIO2$+" gioca un'avventura...I -> mostra le stanze dell'edi"
  7730. MESSAGGIO2$=MESSAGGIO2$+"ficio corrente...K -> mostra le categorie degli ogge"
  7731. MESSAGGIO2$=MESSAGGIO2$+"tti...L -> mostra i luoghi...M -> modifica un'avvent"
  7732. MESSAGGIO2$=MESSAGGIO2$+"ura...O -> mostra gli oggetti...P -> mostra i person"
  7733. MESSAGGIO2$=MESSAGGIO2$+"aggi...S -> salva un file di Adventures Conceiver..."
  7734. MESSAGGIO2$=MESSAGGIO2$+"? -> mostra i meriti...Esc -> esci da Adventures Con"
  7735. MESSAGGIO2$=MESSAGGIO2$+"ceiver..."
  7736. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7737. Repeat 
  7738.  Proc MOSTRAREGIONE
  7739.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7740.  CARATTEREMESSAGGIO=0
  7741.  Repeat 
  7742.   TASTOPREMUTO$=Inkey$
  7743.   Proc MESSAGGIO[MESSAGGIO2$]
  7744.  Until TASTOPREMUTO$<>""
  7745.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7746.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7747.  If TASTOPREMUTO$="d" Then Exit 
  7748.  If TASTOPREMUTO$="e" Then Exit 
  7749.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7750.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7751.  If TASTOPREMUTO$="k" Then Exit 
  7752.  If TASTOPREMUTO$="l" Then Exit 
  7753.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7754.  If TASTOPREMUTO$="o" Then Exit 
  7755.  If TASTOPREMUTO$="p" Then Exit 
  7756.  If TASTOPREMUTO$="s"
  7757.   Proc DAVARIABILIABANCO[False]
  7758.   If SENZAMEMORIA=False
  7759.    Proc DAVARIABILIABANCO[True]
  7760.    Proc SALVAUNFILE
  7761.   End If 
  7762.  End If 
  7763.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7764.  If TASTOPREMUTO$=Cup$ Then Add REGIONE,-1,0 To NUMEROR
  7765.  If TASTOPREMUTO$=Cdown$ Then Add REGIONE,1,0 To NUMEROR
  7766. Until TASTOPREMUTO$=Chr$(27)
  7767. End Proc
  7768. Procedure MOSTRALESTANZE
  7769. Shared TASTOPREMUTO$
  7770. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta stanza...C -> carica un f"
  7771. MESSAGGIO2$=MESSAGGIO2$+"ile di Adventures Conceiver...D -> mostra il destino"
  7772. MESSAGGIO2$=MESSAGGIO2$+" (scopo) del gioco...E -> mostra gli edifici...G -> "
  7773. MESSAGGIO2$=MESSAGGIO2$+"gioca un'avventura...K -> mostra le categorie degli "
  7774. MESSAGGIO2$=MESSAGGIO2$+"oggetti...L -> mostra i luoghi...M -> modifica un'av"
  7775. MESSAGGIO2$=MESSAGGIO2$+"ventura...O -> mostra gli oggetti...P -> mostra i pe"
  7776. MESSAGGIO2$=MESSAGGIO2$+"rsonaggi...R -> mostra le regioni...S -> salva un fi"
  7777. MESSAGGIO2$=MESSAGGIO2$+"le di Adventures Conceiver...? -> mostra i meriti..."
  7778. MESSAGGIO2$=MESSAGGIO2$+"Esc -> esci da Adventures Conceiver..."
  7779. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7780. Repeat 
  7781.  Proc MOSTRASTANZA
  7782.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7783.  CARATTEREMESSAGGIO=0
  7784.  Repeat 
  7785.   TASTOPREMUTO$=Inkey$
  7786.   Proc MESSAGGIO[MESSAGGIO2$]
  7787.  Until TASTOPREMUTO$<>""
  7788.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7789.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7790.  If TASTOPREMUTO$="d" Then Exit 
  7791.  If TASTOPREMUTO$="e" Then Exit 
  7792.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7793.  If TASTOPREMUTO$="k" Then Exit 
  7794.  If TASTOPREMUTO$="l" Then Exit 
  7795.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7796.  If TASTOPREMUTO$="o" Then Exit 
  7797.  If TASTOPREMUTO$="p" Then Exit 
  7798.  If TASTOPREMUTO$="r" Then Exit 
  7799.  If TASTOPREMUTO$="s"
  7800.   Proc DAVARIABILIABANCO[False]
  7801.   If SENZAMEMORIA=False
  7802.    Proc DAVARIABILIABANCO[True]
  7803.    Proc SALVAUNFILE
  7804.   End If 
  7805.  End If 
  7806.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7807.  If TASTOPREMUTO$=Cup$ Then Add STANZA,-1,0 To NUMEROS(EDIFICIO)
  7808.  If TASTOPREMUTO$=Cdown$ Then Add STANZA,1,0 To NUMEROS(EDIFICIO)
  7809. Until TASTOPREMUTO$=Chr$(27)
  7810. End Proc
  7811. Procedure MOSTRALUOGO
  7812. Cls 
  7813. If M0DIFICA=False
  7814.  Proc TIC[MESSAGGIO3$,0] : Print 
  7815. End If 
  7816. Print "Luogo";LUOGO;":"
  7817. Print "Nome>";NOMEL$(LUOGO)
  7818. Print "Regione di appartenenza>";NOMER$(REGIONEL(LUOGO))
  7819. Print "Tipo di luogo>";TIPOL$(TIPOL(LUOGO))
  7820. DREZIONE=DREZIONEL(0,LUOGO)
  7821. Print "Direzione Nord     >";
  7822. E=DREZIONE/$10000
  7823. If E>0
  7824.  S=DREZIONE mod $10000
  7825.  Print "edificio";E;" stanza";S
  7826. Else 
  7827.  DREZIONE=DREZIONE mod $10000
  7828.  If DREZIONE<$FFFF
  7829.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7830.  Else 
  7831.   Print "nessun luogo"
  7832.  End If 
  7833. End If 
  7834. DREZIONE=DREZIONEL(1,LUOGO)
  7835. Print "Direzione NordEst  >";
  7836. E=DREZIONE/$10000
  7837. If E>0
  7838.  S=DREZIONE mod $10000
  7839.  Print "edificio";E;" stanza";S
  7840. Else 
  7841.  DREZIONE=DREZIONE mod $10000
  7842.  If DREZIONE<$FFFF
  7843.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7844.  Else 
  7845.   Print "nessun luogo"
  7846.  End If 
  7847. End If 
  7848. DREZIONE=DREZIONEL(2,LUOGO)
  7849. Print "Direzione Est      >";
  7850. E=DREZIONE/$10000
  7851. If E>0
  7852.  S=DREZIONE mod $10000
  7853.  Print "edificio";E;" stanza";S
  7854. Else 
  7855.  DREZIONE=DREZIONE mod $10000
  7856.  If DREZIONE<$FFFF
  7857.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7858.  Else 
  7859.   Print "nessun luogo"
  7860.  End If 
  7861. End If 
  7862. DREZIONE=DREZIONEL(3,LUOGO)
  7863. Print "Direzione SudEst   >";
  7864. E=DREZIONE/$10000
  7865. If E>0
  7866.  S=DREZIONE mod $10000
  7867.  Print "edificio";E;" stanza";S
  7868. Else 
  7869.  DREZIONE=DREZIONE mod $10000
  7870.  If DREZIONE<$FFFF
  7871.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7872.  Else 
  7873.   Print "nessun luogo"
  7874.  End If 
  7875. End If 
  7876. DREZIONE=DREZIONEL(4,LUOGO)
  7877. Print "Direzione Sud      >";
  7878. E=DREZIONE/$10000
  7879. If E>0
  7880.  S=DREZIONE mod $10000
  7881.  Print "edificio";E;" stanza";S
  7882. Else 
  7883.  DREZIONE=DREZIONE mod $10000
  7884.  If DREZIONE<$FFFF
  7885.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7886.  Else 
  7887.   Print "nessun luogo"
  7888.  End If 
  7889. End If 
  7890. DREZIONE=DREZIONEL(5,LUOGO)
  7891. Print "Direzione SudOvest >";
  7892. E=DREZIONE/$10000
  7893. If E>0
  7894.  S=DREZIONE mod $10000
  7895.  Print "edificio";E;" stanza";S
  7896. Else 
  7897.  DREZIONE=DREZIONE mod $10000
  7898.  If DREZIONE<$FFFF
  7899.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7900.  Else 
  7901.   Print "nessun luogo"
  7902.  End If 
  7903. End If 
  7904. DREZIONE=DREZIONEL(6,LUOGO)
  7905. Print "Direzione Ovest    >";
  7906. E=DREZIONE/$10000
  7907. If E>0
  7908.  S=DREZIONE mod $10000
  7909.  Print "edificio";E;" stanza";S
  7910. Else 
  7911.  DREZIONE=DREZIONE mod $10000
  7912.  If DREZIONE<$FFFF
  7913.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7914.  Else 
  7915.   Print "nessun luogo"
  7916.  End If 
  7917. End If 
  7918. DREZIONE=DREZIONEL(7,LUOGO)
  7919. Print "Direzione NordOvest>";
  7920. E=DREZIONE/$10000
  7921. If E>0
  7922.  S=DREZIONE mod $10000
  7923.  Print "edificio";E;" stanza";S
  7924. Else 
  7925.  DREZIONE=DREZIONE mod $10000
  7926.  If DREZIONE<$FFFF
  7927.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7928.  Else 
  7929.   Print "nessun luogo"
  7930.  End If 
  7931. End If 
  7932. DREZIONE=DREZIONEL(8,LUOGO)
  7933. Print "Direzione Sopra    >";
  7934. E=DREZIONE/$10000
  7935. If E>0
  7936.  S=DREZIONE mod $10000
  7937.  Print "edificio";E;" stanza";S
  7938. Else 
  7939.  DREZIONE=DREZIONE mod $10000
  7940.  If DREZIONE<$FFFF
  7941.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7942.  Else 
  7943.   Print "nessun luogo"
  7944.  End If 
  7945. End If 
  7946. DREZIONE=DREZIONEL(9,LUOGO)
  7947. Print "Direzione Sotto    >";
  7948. E=DREZIONE/$10000
  7949. If E>0
  7950.  S=DREZIONE mod $10000
  7951.  Print "edificio";E;" stanza";S
  7952. Else 
  7953.  DREZIONE=DREZIONE mod $10000
  7954.  If DREZIONE<$FFFF
  7955.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7956.  Else 
  7957.   Print "nessun luogo"
  7958.  End If 
  7959. End If 
  7960. SOLDINELLUOGO=SOLDIL(LUOGO)
  7961. If SOLDINELLUOGO>0
  7962.  Print Str$(SOLDINELLUOGO)-" ";" ";
  7963.  If SOLDINELLUOGO=1
  7964.   Print "soldo"
  7965.  Else 
  7966.   Print "soldi"
  7967.  End If 
  7968. End If 
  7969. End Proc
  7970. Procedure MOSTRAMESSAGGIO[MESSAGGIO4$,MESSAGGIO5$]
  7971. Cls 
  7972. Proc TIC[MESSAGGIO4$,0] : Print : POSIZIONE=1
  7973. Repeat 
  7974.  SPAZIO=Instr(MESSAGGIO5$," ",POSIZIONE)
  7975.  If SPAZIO>0
  7976.   If X Curs+SPAZIO-POSIZIONE>79
  7977.    Print : X=0
  7978.    Proc FONDOSCHERMOGIOCO
  7979.   End If 
  7980.   Print Mid$(MESSAGGIO5$,POSIZIONE,SPAZIO-POSIZIONE+1);
  7981.   If X Curs=0
  7982.    Cmove ,-1
  7983.   End If 
  7984.   POSIZIONE=SPAZIO+1
  7985.  Else 
  7986.   Print Mid$(MESSAGGIO5$,POSIZIONE,Len(MESSAGGIO5$)-POSIZIONE+1)
  7987.  End If 
  7988. Until SPAZIO=0
  7989. If X Curs>0 or Y Curs>0
  7990.  Proc TIC["Premi un tasto...",ULTIMALINEA] : Wait Key 
  7991. End If 
  7992. End Proc
  7993. Procedure MOSTRAOGGETTO
  7994. Cls 
  7995. If M0DIFICA=False
  7996.  Proc TIC[MESSAGGIO3$,0] : Print 
  7997. End If 
  7998. Print "Oggetto";OGGETTO;":"
  7999. Print "Nome>";
  8000. If Btst(1,TIPOO(OGGETTO))=True
  8001.  Print NOMESRO$(CATEGORIAO(OGGETTO))
  8002. Else 
  8003.  Print NOMESCO$(CATEGORIAO(OGGETTO))
  8004. End If 
  8005. Print "Posizione>";
  8006. If POSIZIONEO(OGGETTO)<0
  8007.  SOGGETTO= Not POSIZIONEO(OGGETTO)
  8008.  If Btst(0,TIPOO(OGGETTO))=True
  8009.   Print "posseduto dal personaggio";SOGGETTO;
  8010.   Print " nome>";NOMEP$(SOGGETTO)
  8011.  Else 
  8012.   Print "contenuto nell'oggetto";SOGGETTO;
  8013.   Print " nome>";
  8014.   If Btst(1,TIPOO(SOGGETTO))=True
  8015.    Print NOMESRO$(CATEGORIAO(SOGGETTO))
  8016.   Else 
  8017.    Print NOMESCO$(CATEGORIAO(SOGGETTO))
  8018.   End If 
  8019.  End If 
  8020. Else 
  8021.  Print "luogo";POSIZIONEO(OGGETTO);" nome>";NOMEL$(POSIZIONEO(OGGETTO))
  8022. End If 
  8023. If Btst(1,TIPOO(OGGETTO))=True
  8024.  PESOOGGETTO=PESORESTOCO(CATEGORIAO(OGGETTO))
  8025. Else 
  8026.  PESOOGGETTO=PESOCO(CATEGORIAO(OGGETTO))
  8027. End If 
  8028. Print "Peso>";Str$(PESOOGGETTO)-" ";" ";
  8029. If PESOOGGETTO=1
  8030.  Print "grammo"
  8031. Else 
  8032.  Print "grammi"
  8033. End If 
  8034. If Btst(3,TIPOO(OGGETTO))=True
  8035.  Print "Nascosto"
  8036. End If 
  8037. If Btst(1,TIPOO(OGGETTO))=True
  8038.  Print "Resto"
  8039. End If 
  8040. If Btst(2,TIPOO(OGGETTO))=True
  8041.  Print "Indossato dal personaggio";SOGGETTO;" nome>";NOMEP$(SOGGETTO)
  8042. End If 
  8043. End Proc
  8044. Procedure MOSTRAOGGETTOPERINSERIMENTO[P]
  8045. Repeat 
  8046.  Cls 
  8047.  Print "Nome del personaggio";P;">";NOMEP$(P)
  8048.  Print At(0,ULTIMALINEA-1);"Oggetto";CATEGORIA;">";NOMESCO$(CATEGORIA)
  8049.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scegli l'oggetto Spazio conferma",ULTIMALINEA]
  8050.  Repeat 
  8051.   TASTOPREMUTO$=Inkey$
  8052.  Until TASTOPREMUTO$<>""
  8053.  If TASTOPREMUTO$=Cup$ Then Add CATEGORIA,-1,0 To NUMEROCO
  8054.  If TASTOPREMUTO$=Cdown$ Then Add CATEGORIA,1,0 To NUMEROCO
  8055. Until TASTOPREMUTO$=" "
  8056. End Proc[CATEGORIA]
  8057. Procedure MOSTRAPERSONAGGIO
  8058. Cls 
  8059. If M0DIFICA=False
  8060.  Proc TIC[MESSAGGIO3$,0] : Print 
  8061. End If 
  8062. Print "Personaggio";PERSONAGGIO;
  8063. If PERSONAGGIO=0
  8064.  Print " (personaggio del giocatore):"
  8065. Else 
  8066.  Print ":"
  8067. End If 
  8068. Print "Nome>";NOMEP$(PERSONAGGIO)
  8069. Print "Posizione>";
  8070. If POSIZIONEP(PERSONAGGIO)<0
  8071.  SOGGETTO=-1-POSIZIONEP(PERSONAGGIO)
  8072.  If Btst(0,TIPOP(PERSONAGGIO))=True
  8073.   Print "trasportato dal personaggio";SOGGETTO;
  8074.   Print " nome>";NOMEP$(SOGGETTO)
  8075.  Else 
  8076.   Print "contenuto nell'oggetto";SOGGETTO;" nome>";
  8077.   If Btst(1,TIPOO(SOGGETTO))=True
  8078.    Print NOMESRO$(CATEGORIAO(SOGGETTO))
  8079.   Else 
  8080.    Print NOMESCO$(CATEGORIAO(SOGGETTO))
  8081.   End If 
  8082.  End If 
  8083. Else 
  8084.  If TEMP0DIATTRAVERSAMENTOP(PERSONAGGIO)>0
  8085.   Print "In cammino dal luogo";POSIZIONEP(PERSONAGGIO);" nome>";NOMEL$(POSIZIONEP(PERSONAGGIO))
  8086.   Print " al luogo";LUOGODIDESTINAZIONEP(PERSONAGGIO);" nome>";NOMEL$(LUOGODIDESTINAZIONEP(PERSONAGGIO))
  8087.  Else 
  8088.   E=POSIZIONEP(PERSONAGGIO)/$10000
  8089.   If E>0
  8090.    Print "Edificio";E-1;" nome>";NOMEE$(E-1)
  8091.    S=POSIZIONEP(PERSONAGGIO) mod $10000
  8092.    Print "Stanza";S;" nome>";NOMES$(S,E-1)
  8093.   Else 
  8094.    Print "luogo";POSIZIONEP(PERSONAGGIO);" nome>";NOMEL$(POSIZIONEP(PERSONAGGIO))
  8095.   End If 
  8096.  End If 
  8097. End If 
  8098. Print "Costituzione>";Str$(C0STITUZIONEP(PERSONAGGIO))-" ";" ";
  8099. If C0STITUZIONEP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8100. Print "Destrezza>";Str$(DESTREZZAP(PERSONAGGIO))-" ";" ";
  8101. If DESTREZZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8102. Print "Forza>";Str$(F0RZAP(PERSONAGGIO))-" ";" ";
  8103. If F0RZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8104. PESODELPERSONAGGIO=PESOP(PERSONAGGIO)+PESONETTOP(PERSONAGGIO)/1000
  8105. Print "Peso>";Str$(PESODELPERSONAGGIO)-" ";" ";
  8106. If PESODELPERSONAGGIO=1 Then Print "chilo" Else Print "chili"
  8107. Print "Peso netto>";
  8108. If PESONETTOP(PERSONAGGIO)>999
  8109.  PESOOEPDELP0=PESONETTOP(PERSONAGGIO)/1000
  8110.  Print Str$(PESOOEPDELP0)-" ";" ";
  8111.  If PESOOEPDELP0=1
  8112.   Print "chilo";
  8113.  Else 
  8114.   Print "chili";
  8115.  End If 
  8116.  PESOOEPDELP0=PESONETTOP(PERSONAGGIO) mod 1000
  8117.  If PESOOEPDELP0>0
  8118.   Print " e";PESOOEPDELP0;" ";
  8119.   If PESOOEPDELP0=1
  8120.    Print "grammo"
  8121.   Else 
  8122.    Print "grammi"
  8123.   End If 
  8124.  Else 
  8125.   Print 
  8126.  End If 
  8127. Else 
  8128.  PESOOEPDELP0=PESONETTOP(PERSONAGGIO)
  8129.  Print Str$(PESOOEPDELP0)-" ";" ";
  8130.  If PESOOEPDELP0=1
  8131.   Print "grammo"
  8132.  Else 
  8133.   Print "grammi"
  8134.  End If 
  8135. End If 
  8136. Print "Resistenza>";Str$(RESISTENZAP(PERSONAGGIO))-" ";" ";
  8137. If RESISTENZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8138. Print "Sesso>";
  8139. If Btst(1,TIPOP(PERSONAGGIO))=True Then Print "Femminile" Else Print "Maschile"
  8140. If PERSONAGGIO>0
  8141.  Print "Condizione>";
  8142.  If Btst(3,TIPOP(PERSONAGGIO))=True
  8143.   Print "Nemic";
  8144.  Else 
  8145.   Print "Amic";
  8146.  End If 
  8147.  If Btst(1,TIPOP(PERSONAGGIO))=True
  8148.   Print "a"
  8149.  Else 
  8150.   Print "o"
  8151.  End If 
  8152. End If 
  8153. Print "Soldi>";Str$(SOLDIP(PERSONAGGIO))-" ";" ";
  8154. If SOLDIP(PERSONAGGIO)=1 Then Print "soldo" Else Print "soldi"
  8155. If PERSONAGGIO>0
  8156.  Print "Inizio sonno>";
  8157.  _ORE=INIZIOSONNOP(PERSONAGGIO)/60 mod 24
  8158.  Print Using "#";_ORE/10; Using "#";_ORE mod 10;
  8159.  M1NUTI=INIZIOSONNOP(PERSONAGGIO) mod 60
  8160.  Print Using ":#";M1NUTI/10; Using "#";M1NUTI mod 10
  8161.  Print "Durata sonno>";Str$(SONNOP(PERSONAGGIO))-" ";" ";
  8162.  If SONNOP(PERSONAGGIO)=1
  8163.   Print "minuto"
  8164.  Else 
  8165.   Print "minuti"
  8166.  End If 
  8167.  For A=0 To 7
  8168.   AZIONE=AZIONEP(A,PERSONAGGIO)
  8169.   PARA=PARAAAZIONEP(A,PERSONAGGIO)
  8170.   PARB=PARABAZIONEP(A,PERSONAGGIO)
  8171.   PARC=PARACAZIONEP(A,PERSONAGGIO)
  8172.   Cline : Print : Cline : Cmove ,-1
  8173.   Print "azione";A+1;">";
  8174.   Proc MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  8175.   Proc FONDOSCHERMOEDITOR
  8176.  Next A
  8177. End If 
  8178. If Btst(2,TIPOP(PERSONAGGIO))=True
  8179.  Print "Sta dormendo"
  8180. End If 
  8181. End Proc
  8182. Procedure MOSTRAREGIONE
  8183. Cls 
  8184. If M0DIFICA=False
  8185.  Proc TIC[MESSAGGIO3$,0] : Print 
  8186. End If 
  8187. Print "Regione";REGIONE;":"
  8188. Print "Nome>";NOMER$(REGIONE)
  8189. End Proc
  8190. Procedure MOSTRASTANZA
  8191. Cls 
  8192. If M0DIFICA=False
  8193.  Proc TIC[MESSAGGIO3$,0] : Print 
  8194. End If 
  8195. Print "Edificio";EDIFICIO;":"
  8196. Print "Stanza";STANZA;":"
  8197. Print "Nome>";NOMES$(STANZA,EDIFICIO)
  8198. DREZIONE=DREZIONES(0,STANZA,EDIFICIO)
  8199. Print "Direzione Nord     >";
  8200. E=DREZIONE/$10000
  8201. If E>0
  8202.  S=DREZIONE mod $10000
  8203.  Print "edificio";E;" stanza";S
  8204. Else 
  8205.  DREZIONE=DREZIONE mod $10000
  8206.  If DREZIONE<$FFFF
  8207.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8208.  Else 
  8209.   Print "nessun luogo"
  8210.  End If 
  8211. End If 
  8212. DREZIONE=DREZIONES(1,STANZA,EDIFICIO)
  8213. Print "Direzione NordEst  >";
  8214. E=DREZIONE/$10000
  8215. If E>0
  8216.  S=DREZIONE mod $10000
  8217.  Print "edificio";E;" stanza";S
  8218. Else 
  8219.  DREZIONE=DREZIONE mod $10000
  8220.  If DREZIONE<$FFFF
  8221.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8222.  Else 
  8223.   Print "nessun luogo"
  8224.  End If 
  8225. End If 
  8226. DREZIONE=DREZIONES(2,STANZA,EDIFICIO)
  8227. Print "Direzione Est      >";
  8228. E=DREZIONE/$10000
  8229. If E>0
  8230.  S=DREZIONE mod $10000
  8231.  Print "edificio";E;" stanza";S
  8232. Else 
  8233.  DREZIONE=DREZIONE mod $10000
  8234.  If DREZIONE<$FFFF
  8235.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8236.  Else 
  8237.   Print "nessun luogo"
  8238.  End If 
  8239. End If 
  8240. DREZIONE=DREZIONES(3,STANZA,EDIFICIO)
  8241. Print "Direzione SudEst   >";
  8242. E=DREZIONE/$10000
  8243. If E>0
  8244.  S=DREZIONE mod $10000
  8245.  Print "edificio";E;" stanza";S
  8246. Else 
  8247.  DREZIONE=DREZIONE mod $10000
  8248.  If DREZIONE<$FFFF
  8249.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8250.  Else 
  8251.   Print "nessun luogo"
  8252.  End If 
  8253. End If 
  8254. DREZIONE=DREZIONES(4,STANZA,EDIFICIO)
  8255. Print "Direzione Sud      >";
  8256. E=DREZIONE/$10000
  8257. If E>0
  8258.  S=DREZIONE mod $10000
  8259.  Print "edificio";E;" stanza";S
  8260. Else 
  8261.  DREZIONE=DREZIONE mod $10000
  8262.  If DREZIONE<$FFFF
  8263.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8264.  Else 
  8265.   Print "nessun luogo"
  8266.  End If 
  8267. End If 
  8268. DREZIONE=DREZIONES(5,STANZA,EDIFICIO)
  8269. Print "Direzione SudOvest >";
  8270. E=DREZIONE/$10000
  8271. If E>0
  8272.  S=DREZIONE mod $10000
  8273.  Print "edificio";E;" stanza";S
  8274. Else 
  8275.  DREZIONE=DREZIONE mod $10000
  8276.  If DREZIONE<$FFFF
  8277.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8278.  Else 
  8279.   Print "nessun luogo"
  8280.  End If 
  8281. End If 
  8282. DREZIONE=DREZIONES(6,STANZA,EDIFICIO)
  8283. Print "Direzione Ovest    >";
  8284. E=DREZIONE/$10000
  8285. If E>0
  8286.  S=DREZIONE mod $10000
  8287.  Print "edificio";E;" stanza";S
  8288. Else 
  8289.  DREZIONE=DREZIONE mod $10000
  8290.  If DREZIONE<$FFFF
  8291.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8292.  Else 
  8293.   Print "nessun luogo"
  8294.  End If 
  8295. End If 
  8296. DREZIONE=DREZIONES(7,STANZA,EDIFICIO)
  8297. Print "Direzione NordOvest>";
  8298. E=DREZIONE/$10000
  8299. If E>0
  8300.  S=DREZIONE mod $10000
  8301.  Print "edificio";E;" stanza";S
  8302. Else 
  8303.  DREZIONE=DREZIONE mod $10000
  8304.  If DREZIONE<$FFFF
  8305.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8306.  Else 
  8307.   Print "nessun luogo"
  8308.  End If 
  8309. End If 
  8310. DREZIONE=DREZIONES(8,STANZA,EDIFICIO)
  8311. Print "Direzione Sopra    >";
  8312. E=DREZIONE/$10000
  8313. If E>0
  8314.  S=DREZIONE mod $10000
  8315.  Print "edificio";E;" stanza";S
  8316. Else 
  8317.  DREZIONE=DREZIONE mod $10000
  8318.  If DREZIONE<$FFFF
  8319.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8320.  Else 
  8321.   Print "nessun luogo"
  8322.  End If 
  8323. End If 
  8324. DREZIONE=DREZIONES(9,STANZA,EDIFICIO)
  8325. Print "Direzione Sotto    >";
  8326. E=DREZIONE/$10000
  8327. If E>0
  8328.  S=DREZIONE mod $10000
  8329.  Print "edificio";E;" stanza";S
  8330. Else 
  8331.  DREZIONE=DREZIONE mod $10000
  8332.  If DREZIONE<$FFFF
  8333.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8334.  Else 
  8335.   Print "nessun luogo"
  8336.  End If 
  8337. End If 
  8338. SOLDINELLASTANZA=SOLDIS(STANZA,EDIFICIO)
  8339. If SOLDINELLASTANZA>0
  8340.  Print Str$(SOLDINELLASTANZA)-" ";" ";
  8341.  If SOLDINELLASTANZA=1
  8342.   Print "soldo"
  8343.  Else 
  8344.   Print "soldi"
  8345.  End If 
  8346. End If 
  8347. End Proc
  8348. Procedure MUOVITI
  8349. If F0RZAP(0)+PESOP(0)/10>=PESONETTOP(0)/1000
  8350.  EDIFICIODOVESITROVAILPERSONAGGIO0=POSIZIONEP(0)/$10000
  8351.  If TEMP0DIATTRAVERSAMENTOP(0)=0 or EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8352.   Locate 0,ULTIMALINEA : Input "Dove vuoi andare ?>";DREZIONE$; : Curs Off 
  8353.   DREZIONE$=Lower$(DREZIONE$)
  8354.   If DREZIONE$<>""
  8355.    For A=0 To 9
  8356.     If DREZIONE$=Lower$(DREZIONEL$(A)) or DREZIONE$=Lower$(DREZIONE$(A))
  8357.      If EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8358.       S=POSIZIONEP(0) mod $10000
  8359.       If DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0) mod $10000<$FFFF
  8360.        E=DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0)/$10000
  8361.        Exit 
  8362.       Else 
  8363.        DREZIONE$=Lower$(DREZIONE$(A))
  8364.       End If 
  8365.      Else 
  8366.       If DREZIONEL(A,POSIZIONEP(0)) mod $10000<$FFFF
  8367.        E=DREZIONEL(A,POSIZIONEP(0))/$10000
  8368.        Exit 
  8369.       Else 
  8370.        DREZIONE$=Lower$(DREZIONE$(A))
  8371.       End If 
  8372.      End If 
  8373.     End If 
  8374.    Next A
  8375.    If A<10
  8376.     If E>0
  8377.      If EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8378.       POSIZIONEP(0)=DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0)
  8379.      Else 
  8380.       POSIZIONEP(0)=DREZIONEL(A,POSIZIONEP(0))
  8381.      End If 
  8382.     Else 
  8383.      If EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8384.       POSIZIONEP(0)=DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0)
  8385.      Else 
  8386.       LUOGODIDESTINAZIONEP(0)=DREZIONEL(A,POSIZIONEP(0))
  8387.       CAMMINOP(0)=PARATIPOL(TIPOL(POSIZIONEP(0)))+PARATIPOL(TIPOL(LUOGODIDESTINAZIONEP(0)))
  8388.       If CAMMINOP(0)=0
  8389.        POSIZIONEP(0)=LUOGODIDESTINAZIONEP(0)
  8390.        DREZIONEPRESAP(0)=-1
  8391.        DREZIONEOPPOSTAAQUELLAPRESAP(0)=-1
  8392.       Else 
  8393.        TEMP0DIATTRAVERSAMENTOP(0)=CAMMINOP(0)
  8394.        DREZIONEPRESAP(0)=A
  8395.        If DREZIONEPRESAP(0)=9
  8396.         DREZIONEOPPOSTAAQUELLAPRESAP(0)=8
  8397.        Else If DREZIONEPRESAP(0)=8
  8398.         DREZIONEOPPOSTAAQUELLAPRESAP(0)=9
  8399.        Else If DREZIONEPRESAP(0)<8 and DREZIONEPRESAP(0)>3
  8400.         DREZIONEOPPOSTAAQUELLAPRESAP(0)=DREZIONEPRESAP(0)-4
  8401.        Else 
  8402.         DREZIONEOPPOSTAAQUELLAPRESAP(0)=DREZIONEPRESAP(0)+4
  8403.        End If 
  8404.       End If 
  8405.      End If 
  8406.     End If 
  8407.     COMPIUTAAZIONE=1
  8408.     Print At(0,ULTIMALINEA);"Hai deciso di andare ";
  8409.     If A>7
  8410.      Print Lower$(DREZIONE$(A));
  8411.     Else 
  8412.      Print "a ";Lower$(DREZIONE$(A));
  8413.     End If 
  8414.    Else 
  8415.     A=False
  8416.     For B=0 To 9
  8417.      If DREZIONE$=Lower$(DREZIONEL$(B)) or DREZIONE$=Lower$(DREZIONE$(B))
  8418.       A=True
  8419.      End If 
  8420.     Next B
  8421.     If A=True
  8422.      Print At(0,ULTIMALINEA);"Non puoi andare ";
  8423.      If DREZIONE$="sopra" or DREZIONE$="sotto"
  8424.       Print DREZIONE$;
  8425.      Else 
  8426.       Print "a ";DREZIONE$;
  8427.      End If 
  8428.      Print " ";
  8429.      If _MUSICA=False
  8430.       Bell 1
  8431.      End If 
  8432.     Else 
  8433.      Print At(0,ULTIMALINEA);"Non so cosa sia ";DREZIONE$;"   ";
  8434.      If _MUSICA=False
  8435.       Bell 1
  8436.      End If 
  8437.     End If 
  8438.    End If 
  8439.    Proc _ASPETTA
  8440.   End If 
  8441.  Else 
  8442.   Print At(0,ULTIMALINEA);"Vuoi andare avanti (a) o tornare indietro (i) ?";
  8443.   SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  8444.   If SCELTA$="a"
  8445.    Dec TEMP0DIATTRAVERSAMENTOP(0)
  8446.    If TEMP0DIATTRAVERSAMENTOP(0)=0
  8447.     POSIZIONEP(0)=LUOGODIDESTINAZIONEP(0)
  8448.     DREZIONEPRESAP(0)=-1
  8449.     Locate 0,ULTIMALINEA : Cline : Print "Sei arrivato a ";NOMEL$(POSIZIONEP(0));
  8450.    Else 
  8451.     Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di andare avanti";
  8452.    End If 
  8453.    COMPIUTAAZIONE=1 : Proc _ASPETTA
  8454.   Else If SCELTA$="i"
  8455.    Inc TEMP0DIATTRAVERSAMENTOP(0)
  8456.    If TEMP0DIATTRAVERSAMENTOP(0)=PARATIPOL(TIPOL(POSIZIONEP(0)))+PARATIPOL(TIPOL(LUOGODIDESTINAZIONEP(0)))+1
  8457.     Locate 0,ULTIMALINEA : Cline : Print "Sei tornato a ";NOMEL$(POSIZIONEP(0));
  8458.     TEMP0DIATTRAVERSAMENTOP(0)=0
  8459.    Else 
  8460.     Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di tornare indietro";
  8461.    End If 
  8462.    COMPIUTAAZIONE=1 : Proc _ASPETTA
  8463.   End If 
  8464.  End If 
  8465. Else 
  8466.  Print At(0,ULTIMALINEA);"Sei troppo pesante, non puoi muoverti";
  8467.  If _MUSICA=False
  8468.   Bell 1
  8469.  End If 
  8470.  Proc _ASPETTA
  8471. End If 
  8472. End Proc
  8473. Procedure MUOVITIP[AZIONE,P]
  8474. If PERSONAGGIOVISIBILEP(P)=True Then PERSONAGGIOVISIBILE=True
  8475. If Btst(2,TIPOP(0))=False Then PERSONAGGIO0SVEGLIO=True
  8476. If F0RZAP(P)+PESOP(P)/10>=PESONETTOP(P)/1000
  8477.  EDIFICIODOVESITROVAILPERSONAGGIOP=POSIZIONEP(P)/$10000
  8478.  If TEMP0DIATTRAVERSAMENTOP(P)=0 or EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8479.   Do 
  8480.    DREZIONE=Rnd(9)
  8481.    If EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8482.     S=POSIZIONEP(P) mod $10000
  8483.     E=DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP)/$10000
  8484.     Exit If DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP) mod $10000<$FFFF
  8485.    Else 
  8486.     E=DREZIONEL(DREZIONE,POSIZIONEP(P))/$10000
  8487.     Exit If DREZIONEL(DREZIONE,POSIZIONEP(P)) mod $10000<$FFFF
  8488.    End If 
  8489.   Loop 
  8490.   If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  8491.    Print NOMEP$(P);" sta andando ";
  8492.    If DREZIONE>7
  8493.     Print Lower$(DREZIONE$(DREZIONE))
  8494.    Else 
  8495.     Print "a ";Lower$(DREZIONE$(DREZIONE))
  8496.    End If 
  8497.    Proc FONDOSCHERMOGIOCO
  8498.   End If 
  8499.   If E>0
  8500.    If EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8501.     POSIZIONEP(P)=DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP)
  8502.    Else 
  8503.     POSIZIONEP(P)=DREZIONEL(DREZIONE,POSIZIONEP(P))
  8504.    End If 
  8505.    Proc PERSONAGGIOVISIBILE[P]
  8506.    If PERSONAGGIOVISIBILE=False and PERSONAGGIOVISIBILEP(P)=True and PERSONAGGIO0SVEGLIO=True
  8507.     Print NOMEP$(P);" ï¿½ arrivato"
  8508.    End If 
  8509.   Else 
  8510.    If EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8511.     POSIZIONEP(P)=DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP)
  8512.    Else 
  8513.     LUOGODIDESTINAZIONEP(P)=DREZIONEL(DREZIONE,POSIZIONEP(P))
  8514.     CAMMINOP(P)=PARATIPOL(TIPOL(POSIZIONEP(P)))+PARATIPOL(TIPOL(LUOGODIDESTINAZIONEP(P)))
  8515.     If CAMMINOP(P)=0
  8516.      POSIZIONEP(P)=LUOGODIDESTINAZIONEP(P)
  8517.      DREZIONEPRESAP(P)=-1
  8518.      DREZIONEOPPOSTAAQUELLAPRESAP(P)=-1
  8519.     Else 
  8520.      TEMP0DIATTRAVERSAMENTOP(P)=CAMMINOP(P)
  8521.      DREZIONEPRESAP(P)=DREZIONE
  8522.      If DREZIONEPRESAP(P)=9
  8523.       DREZIONEOPPOSTAAQUELLAPRESAP(P)=8
  8524.      Else If DREZIONEPRESAP(P)=8
  8525.       DREZIONEOPPOSTAAQUELLAPRESAP(P)=9
  8526.      Else If DREZIONEPRESAP(P)<8 and DREZIONEPRESAP(P)>3
  8527.       DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(P)-4
  8528.      Else 
  8529.       DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(P)+4
  8530.      End If 
  8531.     End If 
  8532.    End If 
  8533.    Proc PERSONAGGIOVISIBILE[P]
  8534.    If PERSONAGGIOVISIBILE=False and PERSONAGGIOVISIBILEP(P)=True and PERSONAGGIO0SVEGLIO=True
  8535.     Print NOMEP$(P);" ï¿½ arrivato"
  8536.    End If 
  8537.   End If 
  8538.  Else 
  8539. 'Fare DREZIONE=Rnd(1) per far muovere avanti o indietro i personaggi 
  8540.   DREZIONE=1
  8541.   If DREZIONE=1
  8542.    Dec TEMP0DIATTRAVERSAMENTOP(P)
  8543.    If TEMP0DIATTRAVERSAMENTOP(P)=0
  8544.     POSIZIONEP(P)=LUOGODIDESTINAZIONEP(P)
  8545.     DREZIONEPRESAP(P)=-1
  8546.     If PERSONAGGIO0SVEGLIO=True
  8547.      If PERSONAGGIOVISIBILE=True
  8548.       Print NOMEP$(P);" sta andando avanti"
  8549.       Proc FONDOSCHERMOGIOCO
  8550.      Else 
  8551.       Proc PERSONAGGIOVISIBILE[P]
  8552.       If PERSONAGGIOVISIBILEP(P)=True
  8553.        Print NOMEP$(P);" ï¿½ arrivato"
  8554.       End If 
  8555.       Proc FONDOSCHERMOGIOCO
  8556.      End If 
  8557.     End If 
  8558.    Else 
  8559.     If PERSONAGGIO0SVEGLIO=True
  8560.      If PERSONAGGIOVISIBILE=True
  8561.       Print NOMEP$(P);" sta andando avanti"
  8562.       Proc FONDOSCHERMOGIOCO
  8563.      Else 
  8564.       Proc PERSONAGGIOVISIBILE[P]
  8565.       If PERSONAGGIOVISIBILEP(P)=True
  8566.        Print NOMEP$(P);" ï¿½ arrivato"
  8567.       End If 
  8568.       Proc FONDOSCHERMOGIOCO
  8569.      End If 
  8570.     End If 
  8571.    End If 
  8572.   Else 
  8573.    Inc TEMP0DIATTRAVERSAMENTOP(P)
  8574.    If TEMP0DIATTRAVERSAMENTOP(P)=CAMMINOP(P)+1
  8575.     TEMP0DIATTRAVERSAMENTOP(0)=0
  8576.     DREZIONEPRESAP(P)=-1
  8577.     If PERSONAGGIO0SVEGLIO=True
  8578.      If PERSONAGGIOVISIBILE=True
  8579.       Print NOMEP$(P);" sta tornando indietro"
  8580.       Proc FONDOSCHERMOGIOCO
  8581.      Else 
  8582.       Proc PERSONAGGIOVISIBILE[P]
  8583.       If PERSONAGGIOVISIBILEP(P)=True
  8584.        Print NOMEP$(P);" ï¿½ arrivato"
  8585.       End If 
  8586.       Proc FONDOSCHERMOGIOCO
  8587.      End If 
  8588.     End If 
  8589.    Else 
  8590.     If PERSONAGGIO0SVEGLIO=True
  8591.      If PERSONAGGIOVISIBILE=True
  8592.       Print NOMEP$(P);" sta tornando indietro"
  8593.       Proc FONDOSCHERMOGIOCO
  8594.      Else 
  8595.       Proc PERSONAGGIOVISIBILE[P]
  8596.       If PERSONAGGIOVISIBILEP(P)=True
  8597.        Print NOMEP$(P);" ï¿½ arrivato"
  8598.       End If 
  8599.       Proc FONDOSCHERMOGIOCO
  8600.      End If 
  8601.     End If 
  8602.    End If 
  8603.   End If 
  8604.  End If 
  8605. Else 
  8606.  If PERSONAGGIOVISIBILE=True
  8607.   Print NOMEP$(P);" ï¿½ troppo pesante, non pu� muoversi"
  8608.   Proc FONDOSCHERMOGIOCO
  8609.  End If 
  8610. End If 
  8611. End Proc
  8612. Procedure NEMICI[P]
  8613. DIFESA=-1
  8614. For A=0 To NUMEROO
  8615.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  8616.   If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  8617.    DIFESA=CATEGORIAO(A) : VLOREDIFESA=PARATIPOCO(DIFESA)
  8618.    Exit 
  8619.   End If 
  8620.  End If 
  8621. Next A
  8622. OGGETTOOFFENSIVO=-1
  8623. For A=0 To NUMEROO
  8624.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and Btst(6,TIPOCO(CATEGORIAO(A)))=True
  8625.   VLORE1OFFENSIVITA=PARATIPOCO(CATEGORIAO(A))
  8626.   If VLORE1OFFENSIVITA>VLORE0OFFENSIVITA
  8627.    OGGETTOOFFENSIVO=CATEGORIAO(A) : VLORE0OFFENSIVITA=VLORE1OFFENSIVITA
  8628.   End If 
  8629.  End If 
  8630. Next A
  8631. NEMICI=Min(10,Rnd(TEMP0TRASCORSO/1440)+1)
  8632. NOMENEMICI=Rnd(27)
  8633. If P=0 Then Cls 
  8634. Gosub NEMICI
  8635. Gosub SCELTASUINEMICI
  8636. Inc DESTREZZAP(P)
  8637. Pop Proc
  8638. COMBATTIMENTOCONINEMICI:
  8639. If P=0
  8640.  NUMEROCOMBATTIMENTO=1
  8641.  Repeat 
  8642.   Cls 
  8643.   Proc TIC["********** Combattimento numero"+Str$(NUMEROCOMBATTIMENTO)+" **********",0]
  8644.   Print 
  8645.   Gosub TURNODEINEMICI
  8646.   If OGGETTOOFFENSIVO>-1
  8647.    OFFENSIVITA=PARATIPOCO(OGGETTOOFFENSIVO)*5
  8648.   End If 
  8649.   Add OFFENSIVITA,DESTREZZAP(0)
  8650.   Add OFFENSIVITA,F0RZAP(0)
  8651.   OFFENSIVITA=OFFENSIVITA/100
  8652.   Proc LIMITI[OFFENSIVITA,1,NEMICI] : OFFENSIVITA=Param
  8653.   Print "Hai ucciso";OFFENSIVITA;" ";
  8654.   If OFFENSIVITA=1
  8655.    Print NOMESN$(NOMENEMICI);
  8656.   Else 
  8657.    Print NOMEPN$(NOMENEMICI);
  8658.   End If 
  8659.   Print " ";
  8660.   If OGGETTOOFFENSIVO>-1
  8661.    Print "usando 1 ";NOMESCO$(OGGETTOOFFENSIVO);
  8662.   Else 
  8663.    Print "a mani nude";
  8664.   End If 
  8665.   Print "."
  8666.   Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8667.   Add NEMICI,-OFFENSIVITA
  8668.   If NEMICI=0
  8669.    Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  8670.   Else 
  8671.    Gosub SCELTADOPOILCOMBATTIMENTO
  8672.   End If 
  8673.   Inc NUMEROCOMBATTIMENTO
  8674.  Until NEMICI=0
  8675. Else 
  8676.  Print NOMEP$(P);" sta combattendo contro";NEMICI;" ";
  8677.  If NEMICI=1
  8678.   Print NOMESN$(NOMENEMICI)
  8679.  Else 
  8680.   Print NOMEPN$(NOMENEMICI)
  8681.  End If 
  8682.  Proc FONDOSCHERMOGIOCO
  8683. End If 
  8684. Return 
  8685. NEMICI:
  8686. If P=0
  8687.  If INEMICITISVEGLIANO=True
  8688.   If NEMICI=1
  8689.    Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ti ha";
  8690.   Else 
  8691.    Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" che ti hanno";
  8692.   End If 
  8693.   Print " svegliato."
  8694.  Else 
  8695.   If NEMICI=1
  8696.    Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ti ostacola";
  8697.   Else 
  8698.    Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" che ti ostacolano";
  8699.   End If 
  8700.   Print " il cammino."
  8701.  End If 
  8702. Else 
  8703.  If INEMICISVEGLIANOPERSONAGGIOP=True
  8704.   If NEMICI=1
  8705.    Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ha svegliato ";NOMEP$(P)
  8706.   Else 
  8707.    Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" che hanno svegliato ";NOMEP$(P)
  8708.   End If 
  8709.  Else 
  8710.   If NEMICI=1
  8711.    Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ostacola il cammino a ";NOMEP$(P)
  8712.   Else 
  8713.    Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" ostacolano il cammino a ";NOMEP$(P)
  8714.   End If 
  8715.  End If 
  8716.  Proc FONDOSCHERMOGIOCO
  8717. End If 
  8718. Return 
  8719. MOSTRALARESISTENZADELPERSONAGGIOP:
  8720. If P=0
  8721.  RESISTENZAP(0)=Max(RESISTENZAP(0),0)
  8722.  Print "La tua resistenza ï¿½ a";RESISTENZAP(0);" punt";
  8723.  If RESISTENZAP(0)=1
  8724.   Print "o"
  8725.  Else 
  8726.   Print "i"
  8727.  End If 
  8728. Else 
  8729.  Print "La resistenza di ";NOMEP$(P);" ï¿½ a";RESISTENZAP(0);" punt";
  8730.  If RESISTENZAP(0)=1
  8731.   Print "o"
  8732.  Else 
  8733.   Print "i"
  8734.  End If 
  8735.  Proc FONDOSCHERMOGIOCO
  8736. End If 
  8737. Return 
  8738. SCELTASUINEMICI:
  8739. If RESISTENZAP(P)=0 Then Pop 
  8740. If P=0
  8741.  Repeat 
  8742.   Proc TIC["Vuoi combattere (c) o vuoi fuggire (f) ?",ULTIMALINEA]
  8743.   SCELTA$=Input$(1)
  8744.  Until SCELTA$="c" or SCELTA$="f"
  8745.  If SCELTA$="c"
  8746.   Gosub COMBATTIMENTOCONINEMICI
  8747.  Else 
  8748.   Gosub TENTALAFUGADAINEMICI
  8749.  End If 
  8750.  If COMBATTIMENTOCONINEMICI=True
  8751.   Gosub COMBATTIMENTOCONINEMICI
  8752.  End If 
  8753. Else 
  8754.  SCELTA=Rnd(1)
  8755.  If SCELTA=1
  8756.   Gosub COMBATTIMENTOCONINEMICI
  8757.  Else 
  8758.   Gosub TENTALAFUGADAINEMICI
  8759.  End If 
  8760. End If 
  8761. Return 
  8762. SCELTADOPOILCOMBATTIMENTO:
  8763. If RESISTENZAP(P)=0 Then Pop 
  8764. If P=0
  8765.  Repeat 
  8766.   Proc TIC["Vuoi combattere (c) o vuoi fuggire (f) ?",ULTIMALINEA]
  8767.   SCELTA$=Input$(1)
  8768.  Until SCELTA$="c" or SCELTA$="f"
  8769.  If SCELTA$="f"
  8770.   Gosub TENTALAFUGADAINEMICI
  8771.  End If 
  8772. Else 
  8773.  SCELTA=Rnd(1)
  8774.  If SCELTA=1
  8775.   Gosub TENTALAFUGADAINEMICI
  8776.  End If 
  8777. End If 
  8778. Return 
  8779. TENTALAFUGADAINEMICI:
  8780. DESTREZZA=Rnd(99)+1
  8781. If P=0
  8782.  If DESTREZZA<=DESTREZZAP(0)
  8783.   Cls 
  8784.   Print "La tua destrezza non ï¿½ stata sufficiente per evitare lo scontro!"
  8785.   Gosub TURNODEINEMICI
  8786.   Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8787.   Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  8788.   COMBATTIMENTOCONINEMICI=True
  8789.  Else 
  8790.   Cls 
  8791.   Print "Grazie alla tua destrezza hai evitato lo scontro."
  8792.   Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  8793.   Pop Proc
  8794.  End If 
  8795. Else 
  8796.  If DESTREZZA<=DESTREZZAP(P)
  8797.   Print "La destrezza di ";NOMEP$(P);" non ï¿½ stata sufficiente per evitare lo scontro!"
  8798.   Gosub TURNODEINEMICI
  8799.   Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8800.   COMBATTIMENTOCONINEMICI=True
  8801.  Else 
  8802.   Print "Grazie alla sua destrezza ";NOMEP$(P);" ha evitato lo scontro."
  8803.   Pop Proc
  8804.  End If 
  8805.  Proc FONDOSCHERMOGIOCO
  8806. End If 
  8807. Return 
  8808. TURNODEINEMICI:
  8809. If P=0
  8810.  For A=1 To NEMICI
  8811.   NEMICO$=NOMESN$(NOMENEMICI)
  8812.   Left$(NEMICO$,1)=Upper$(Left$(NEMICO$,1))
  8813.   Print NEMICO$;A;
  8814.   DESTREZZA=Rnd(99)+1
  8815.   If DESTREZZA<=DESTREZZAP(0)
  8816.    Print " ha cercato di colpirti, ma tu hai";
  8817.    M0DODESTREZZA=Rnd(1)
  8818.    If M0DODESTREZZA=1
  8819.     Print " schivato";
  8820.    Else 
  8821.     Print " parato";
  8822.    End If 
  8823.    Print " il colpo."
  8824.   Else 
  8825.    If DIFESA>-1
  8826.     DIFESAVALIDA=Rnd(1)
  8827.     If DIFESAVALIDA=1
  8828.      Print " ti ha colpito, ma 1 ";NOMESCO$(DIFESA);" ti ha difes";
  8829.      If Btst(1,TIPOP(0))=True
  8830.       Print "a";
  8831.      Else 
  8832.       Print "o";
  8833.      End If 
  8834.      Print "."
  8835.     Else 
  8836.      Print " ti ha colpito e ti ha fatto una ferita!"
  8837.      FERITA=-(Rnd(2)+1)
  8838.      Add RESISTENZAP(0),FERITA
  8839.     End If 
  8840.    Else 
  8841.     Print " ti ha colpito e ti ha fatto una ferita!"
  8842.     FERITA=-(Rnd(2)+1)
  8843.     Add RESISTENZAP(0),FERITA
  8844.    End If 
  8845.   End If 
  8846.  Next A
  8847. Else 
  8848.  For A=1 To NEMICI
  8849.   NEMICO$=NOMESN$(NOMENEMICI)
  8850.   Left$(NEMICO$,1)=Upper$(Left$(NEMICO$,1))
  8851.   Print NEMICO$;A;
  8852.   DESTREZZA=Rnd(99)+1
  8853.   If DESTREZZA<=DESTREZZAP(P)
  8854.    Print " ha cercato di colpire ";NOMEP$(P);", ma ";
  8855.    If Btst(1,TIPOP(0))=True
  8856.     Print "lei";
  8857.    Else 
  8858.     Print "lui";
  8859.    End If 
  8860.    Print " ha ";
  8861.    M0DODESTREZZA=Rnd(1)
  8862.    If M0DODESTREZZA=1
  8863.     Print "schivato";
  8864.    Else 
  8865.     Print "parato";
  8866.    End If 
  8867.    Print " il colpo."
  8868.   Else 
  8869.    If DIFESA>-1
  8870.     DIFESAVALIDA=Rnd(1)
  8871.     If DIFESAVALIDA=1
  8872.      Print " ha colpito ";NOMEP$(P);", ma 1 ";NOMESCO$(DIFESA);" l'ha difes";
  8873.      If Btst(1,TIPOP(0))=True
  8874.       Print "a";
  8875.      Else 
  8876.       Print "o";
  8877.      End If 
  8878.      Print "."
  8879.     Else 
  8880.      Print " ha colpito ";NOMEP$(P);" e ";
  8881.      If Btst(1,TIPOP(0))=True
  8882.       Print "le";
  8883.      Else 
  8884.       Print "gli";
  8885.      End If 
  8886.      Print " ha fatto una ferita!"
  8887.      FERITA=-(Rnd(2)+1)
  8888.      Add RESISTENZAP(0),FERITA
  8889.     End If 
  8890.    Else 
  8891.     Print " ha colpito ";NOMEP$(P);" e ";
  8892.      If Btst(1,TIPOP(0))=True
  8893.       Print "le";
  8894.      Else 
  8895.       Print "gli";
  8896.      End If 
  8897.     Print " ha fatto una ferita!"
  8898.     FERITA=-(Rnd(2)+1)
  8899.     Add RESISTENZAP(0),FERITA
  8900.    End If 
  8901.   End If 
  8902.   Proc FONDOSCHERMOGIOCO
  8903.  Next A
  8904. End If 
  8905. Return 
  8906. End Proc
  8907. Procedure OGGETTI[M0DO]
  8908. For A=0 To NUMEROCO
  8909.  OGGETTINELLUOGO(A)=0
  8910.  RESTINELLUOGO(A)=0
  8911. Next A
  8912. For A=0 To NUMEROO
  8913.  If POSIZIONEO(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(3,TIPOO(A))=False
  8914.   If Btst(1,TIPOO(A))=True
  8915.    Inc RESTINELLUOGO(CATEGORIAO(A))
  8916.   Else 
  8917.    Inc OGGETTINELLUOGO(CATEGORIAO(A))
  8918.   End If 
  8919.  End If 
  8920. Next A
  8921. If M0DO=True
  8922.  For A=0 To NUMEROCO
  8923.   If OGGETTINELLUOGO(A)>0
  8924.    OGGETTIVISIBILI=True
  8925.   End If 
  8926.   If RESTINELLUOGO(A)>0
  8927.    OGGETTIVISIBILI=True
  8928.   End If 
  8929.  Next A
  8930.  SOLDINELLUOGO=SOLDIL(POSIZIONEP(0))
  8931.  If SOLDINELLUOGO>0
  8932.   OGGETTIVISIBILI=True
  8933.  End If 
  8934.  If OGGETTIVISIBILI=True
  8935.   Print "Oggetti visibili>"
  8936.   Proc FONDOSCHERMOGIOCO
  8937.   For A=0 To NUMEROCO
  8938.    If OGGETTINELLUOGO(A)>0
  8939.     Print Str$(OGGETTINELLUOGO(A))-" ";" ";
  8940.     If OGGETTINELLUOGO(A)=1
  8941.      Print NOMESCO$(A)
  8942.     Else 
  8943.      Print NOMEPCO$(A)
  8944.     End If 
  8945.     Proc FONDOSCHERMOGIOCO
  8946.    End If 
  8947.    If RESTINELLUOGO(A)>0
  8948.     Print Str$(RESTINELLUOGO(A))-" ";" ";
  8949.     If RESTINELLUOGO(A)=1
  8950.      Print NOMESRO$(A)
  8951.     Else 
  8952.      Print NOMEPRO$(A)
  8953.     End If 
  8954.    Proc FONDOSCHERMOGIOCO
  8955.    End If 
  8956.   Next A
  8957.   If SOLDINELLUOGO>0
  8958.    Print Str$(SOLDINELLUOGO)-" ";" ";
  8959.    If SOLDINELLUOGO=1
  8960.     Print "soldo"
  8961.    Else 
  8962.     Print "soldi"
  8963.    End If 
  8964.    Proc FONDOSCHERMOGIOCO
  8965.   End If 
  8966.  Else 
  8967.   Print "Nessun oggetto visibile"
  8968.  End If 
  8969. End If 
  8970. End Proc
  8971. Procedure OGGETTOOPERSONAGGIOSUCUIUSARE[O]
  8972. For A=0 To NUMEROCO
  8973.  If OGGETTINELLUOGO(A)>0
  8974.   Inc CATEGORIEOGGETTI
  8975.  End If 
  8976.  If RESTINELLUOGO(A)>0
  8977.   Inc CATEGORIEOGGETTI
  8978.  End If 
  8979. Next A
  8980. For A=0 To NUMEROP
  8981.  If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  8982.   Inc PERSONAGGI
  8983.  End If 
  8984. Next A
  8985. If CATEGORIEOGGETTI>0 and PERSONAGGI>0
  8986.  Print At(0,ULTIMALINEA);"Vuoi usare su un oggetto o su un personaggio (o/p) ?>";
  8987.  OGGETTOOPERSONAGGIO$=Input$(1)
  8988.  OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  8989.  If OGGETTOOPERSONAGGIO$="o"
  8990.   Proc USASUUNOGGETTO[O]
  8991.  Else If OGGETTOOPERSONAGGIO$="p"
  8992.   Proc USASUUNPERSONAGGIO[O]
  8993.   End If 
  8994. Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0
  8995.  Proc USASUUNOGGETTO[O]
  8996. Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0
  8997.  Proc USASUUNPERSONAGGIO[O]
  8998. Else 
  8999.  Print At(0,ULTIMALINEA);"Non ci sono oggetti o personaggi su cui usare 1 ";
  9000.  If Btst(1,TIPOO(O))=True
  9001.   Print NOMESRO$(CATEGORIAO(O));
  9002.  Else 
  9003.   Print NOMESCO$(CATEGORIAO(O));
  9004.  End If 
  9005.  If _MUSICA=False
  9006.   Bell 1
  9007.  End If 
  9008.  Proc _ASPETTA
  9009. End If 
  9010. End Proc
  9011. Procedure PERSONAGGI
  9012. For A=1 To NUMEROP
  9013.  Proc PERSONAGGIOVISIBILE[A]
  9014.  If PERSONAGGIOVISIBILEP(A)=True Then PERSONAGGIVISIBILI=True
  9015. Next A
  9016. If PERSONAGGIVISIBILI=True
  9017.  Print "Personaggi visibili>"
  9018.  Proc FONDOSCHERMOGIOCO
  9019.  For A=1 To NUMEROP
  9020.   If PERSONAGGIOVISIBILEP(A)=True
  9021.    If RESISTENZAP(A)=0
  9022.     Print "Il cadavere di ";NOMEP$(A);
  9023.     If Btst(1,TIPOP(A))=True
  9024.      Print "@"
  9025.     Else 
  9026.      Print 
  9027.     End If 
  9028.    Else 
  9029.     Print NOMEP$(A);
  9030.     If Btst(1,TIPOP(A))=True
  9031.      Print "@";
  9032.     End If 
  9033.     If Btst(2,TIPOP(A))=True
  9034.      Print " dormiente"
  9035.     Else 
  9036.      Print 
  9037.     End If 
  9038.    End If 
  9039.   End If 
  9040.  Proc FONDOSCHERMOGIOCO
  9041.  Next A
  9042. Else 
  9043.  Print "Nessun personaggio visibile"
  9044. End If 
  9045. End Proc
  9046. Procedure PERSONAGGIORICEVENTE[TIPO$,NUMERO]
  9047. For A=1 To NUMEROP
  9048.  If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIPRESENTI
  9049. Next A
  9050. If PERSONAGGIPRESENTI>1
  9051.  Locate 0,ULTIMALINEA : Input "A chi vuoi dare ?>";PERSONAGGIO$;
  9052.  Curs Off 
  9053.  If PERSONAGGIO$<>""
  9054.   For A=1 To NUMEROP
  9055.    If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A))
  9056.     If TIPO$="O"
  9057.      POSIZIONEO(NUMERO)=-1-A
  9058.      If Btst(1,TIPOO(NUMERO))=True
  9059.       Dec RESTIDELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9060.       Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(NUMERO))
  9061.       Add PESONETTOP(A),PESORESTOCO(CATEGORIAO(NUMERO))
  9062.      Else 
  9063.       Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9064.       Add PESONETTOP(0),-PESOCO(CATEGORIAO(NUMERO))
  9065.       Add PESONETTOP(A),PESOCO(CATEGORIAO(NUMERO))
  9066.       Inc OGGETTIDATIOLASCIATI(CATEGORIAO(NUMERO))
  9067.      End If 
  9068.      If Btst(1,TIPOCO(CATEGORIAO(NUMERO)))=True
  9069.       For B=0 To NUMEROO
  9070.        If POSIZIONEO(B)=-1-NUMERO and Btst(0,TIPOO(B))=False
  9071.         If Btst(1,TIPOO(B))=True
  9072.          Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(B))
  9073.          Add PESONETTOP(A),PESORESTOCO(CATEGORIAO(B))
  9074.         Else 
  9075.          Add PESONETTOP(0),-PESOCO(CATEGORIAO(B))
  9076.          Add PESONETTOP(A),PESOCO(CATEGORIAO(B))
  9077.         End If 
  9078.        End If 
  9079.       Next B
  9080.       For B=1 To NUMEROP
  9081.        If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9082.         Add PESONETTOP(0),-PESOP(B)*1000
  9083.         Add PESONETTOP(0),-PESONETTOP(B)
  9084.         Add PESONETTOP(A),PESOP(B)*1000
  9085.         Add PESONETTOP(A),PESONETTOP(B)
  9086.        End If 
  9087.       Next B
  9088.      End If 
  9089.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9090.      Print "Hai deciso di dare 1 ";
  9091.      If Btst(1,TIPOO(NUMERO))=True
  9092.       Print NOMESRO$(CATEGORIAO(NUMERO));
  9093.      Else 
  9094.       Print NOMESCO$(CATEGORIAO(NUMERO));
  9095.      End If 
  9096.     Else If TIPO$="P"
  9097.      POSIZIONEP(NUMERO)=-1-A
  9098.      Add PESONETTOP(0),-PESOP(NUMERO)*1000
  9099.      Add PESONETTOP(0),-PESONETTOP(NUMERO)
  9100.      Add PESONETTOP(A),PESOP(NUMERO)*1000
  9101.      Add PESONETTOP(A),PESONETTOP(NUMERO)
  9102.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9103.      Print "Hai deciso di dare ";NOMEP$(NUMERO);
  9104.     Else If TIPO$="S"
  9105.      Add SOLDIP(A),NUMERO
  9106.      Add SOLDIRICEVUTIP(A),NUMERO
  9107.      Add PESONETTOP(0),-NUMERO*PESOS
  9108.      Add PESONETTOP(A),NUMERO*PESOS
  9109.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9110.      Print "Hai deciso di dare";NUMERO;
  9111.      If NUMERO=1
  9112.       Print " soldo";
  9113.      Else 
  9114.       Print " soldi";
  9115.      End If 
  9116.     End If 
  9117.     Print " a ";NOMEP$(A);
  9118.     Proc _ASPETTA
  9119.     Exit 
  9120.    End If 
  9121.   Next A
  9122.   If A=NUMEROP+1
  9123.    Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  9124.    If _MUSICA=False
  9125.     Bell 1
  9126.    End If 
  9127.    Proc _ASPETTA
  9128.   End If 
  9129.  End If 
  9130. Else 
  9131.  For A=1 To NUMEROP
  9132.   If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  9133.    If TIPO$="O"
  9134.     POSIZIONEO(NUMERO)=-1-A
  9135.     If Btst(1,TIPOO(NUMERO))=True
  9136.      Dec RESTIDELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9137.      Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(NUMERO))
  9138.      Add PESONETTOP(A),PESORESTOCO(CATEGORIAO(NUMERO))
  9139.     Else 
  9140.      Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9141.      Add PESONETTOP(0),-PESOCO(CATEGORIAO(NUMERO))
  9142.      Add PESONETTOP(A),PESOCO(CATEGORIAO(NUMERO))
  9143.      Inc OGGETTIDATIOLASCIATI(CATEGORIAO(NUMERO))
  9144.     End If 
  9145.     If Btst(1,TIPOCO(CATEGORIAO(NUMERO)))=True
  9146.      For B=0 To NUMEROO
  9147.       If POSIZIONEO(B)=-1-NUMERO and Btst(0,TIPOO(B))=False
  9148.        If Btst(1,TIPOO(B))=True
  9149.         Add PESONETTOP(A),-PESORESTOCO(CATEGORIAO(B))
  9150.        Else 
  9151.         Add PESONETTOP(A),-PESOCO(CATEGORIAO(B))
  9152.        End If 
  9153.       End If 
  9154.      Next B
  9155.      For B=1 To NUMEROP
  9156.       If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9157.        Add PESONETTOP(A),-PESOP(B)*1000
  9158.        Add PESONETTOP(A),-PESONETTOP(B)
  9159.       End If 
  9160.      Next B
  9161.     End If 
  9162.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9163.     Print "Hai deciso di dare 1 ";
  9164.     If Btst(1,TIPOO(NUMERO))=True
  9165.      Print NOMESRO$(CATEGORIAO(NUMERO));
  9166.     Else 
  9167.      Print NOMESCO$(CATEGORIAO(NUMERO));
  9168.     End If 
  9169.    Else If TIPO$="P"
  9170.     POSIZIONEP(NUMERO)=-1-A
  9171.     Add PESONETTOP(0),-PESOP(NUMERO)*1000
  9172.     Add PESONETTOP(0),-PESONETTOP(NUMERO)
  9173.     Add PESONETTOP(A),PESOP(NUMERO)*1000
  9174.     Add PESONETTOP(A),PESONETTOP(NUMERO)
  9175.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9176.     Print "Hai deciso di dare ";NOMEP$(NUMERO);
  9177.    Else If TIPO$="S"
  9178.     Add SOLDIP(A),NUMERO
  9179.     Add SOLDIRICEVUTIP(A),NUMERO
  9180.     Add PESONETTOP(0),-NUMERO*PESOS
  9181.     Add PESONETTOP(A),NUMERO*PESOS
  9182.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9183.     Print "Hai deciso di dare";NUMERO;
  9184.     If NUMERO=1
  9185.      Print " soldo";
  9186.     Else 
  9187.      Print " soldi";
  9188.     End If 
  9189.    End If 
  9190.    Print " a ";NOMEP$(A);
  9191.    Proc _ASPETTA
  9192.   End If 
  9193.  Next A
  9194. End If 
  9195. End Proc
  9196. Procedure PERSONAGGIOVISIBILE[P]
  9197. If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  9198.  PERSONAGGIOVISIBILEP(P)=True
  9199. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  9200.  PERSONAGGIOVISIBILEP(P)=True
  9201. Else 
  9202.  PERSONAGGIOVISIBILEP(P)=False
  9203. End If 
  9204. End Proc
  9205. Procedure PRENDI
  9206. If TEMP0DIATTRAVERSAMENTOP(0)>0
  9207.  For A=1 To NUMEROP
  9208.   If PERSONAGGIOVISIBILEP(A)=True
  9209.    Inc PERSONAGGI
  9210.   End If 
  9211.  Next A
  9212.  If PERSONAGGI>0
  9213.   Proc PRENDIUNPERSONAGGIO
  9214.  Else 
  9215.   Print At(0,ULTIMALINEA);"Non ci sono personaggi da prendere";
  9216.   If _MUSICA=False
  9217.    Bell 1
  9218.   End If 
  9219.   Proc _ASPETTA
  9220.   Pop Proc
  9221.  End If 
  9222. Else 
  9223.  For A=1 To NUMEROP
  9224.   If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  9225.    Inc PERSONAGGI
  9226.   End If 
  9227.  Next A
  9228. End If 
  9229. For A=0 To NUMEROCO
  9230.  If OGGETTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  9231.  If RESTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  9232. Next A
  9233. If SOLDIL(POSIZIONEP(0))>0
  9234.  SOLDI=True
  9235. End If 
  9236. If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=True
  9237.  Print At(0,ULTIMALINEA);"Vuoi prendere un oggetto,un personaggio o dei soldi (o/p/s) ?>";
  9238.  OGGETTOPERSONAGGIOOSOLDI$=Input$(1)
  9239.  OGGETTOPERSONAGGIOOSOLDI$=Lower$(OGGETTOPERSONAGGIOOSOLDI$)
  9240.  If OGGETTOPERSONAGGIOOSOLDI$="o"
  9241.   Proc PRENDIUNOGGETTO
  9242.  Else If OGGETTOPERSONAGGIOOSOLDI$="p"
  9243.   Proc PRENDIUNPERSONAGGIO
  9244.  Else If OGGETTOPERSONAGGIOOSOLDI$="s"
  9245.   Proc PRENDIDEISOLDI
  9246.  End If 
  9247. Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=True
  9248.  Print At(0,ULTIMALINEA);"Vuoi prendere un oggetto o dei soldi (o/s) ?>";
  9249.  OGGETTOOSOLDI$=Input$(1)
  9250.  OGGETTOOSOLDI$=Lower$(OGGETTOOSOLDI$)
  9251.  If OGGETTOOSOLDI$="o"
  9252.   Proc PRENDIUNOGGETTO
  9253.  Else If OGGETTOOSOLDI$="s"
  9254.   Proc PRENDIDEISOLDI
  9255.  End If 
  9256. Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=True
  9257.  Print At(0,ULTIMALINEA);"Vuoi prendere un personaggio o dei soldi (p/s) ?>";
  9258.  PERSONAGGIOOSOLDI$=Input$(1)
  9259.  PERSONAGGIOOSOLDI$=Lower$(PERSONAGGIOOSOLDI$)
  9260.  If PERSONAGGIOOSOLDI$="p"
  9261.   Proc PRENDIUNPERSONAGGIO
  9262.  Else If PERSONAGGIOOSOLDI$="s"
  9263.   Proc PRENDIDEISOLDI
  9264.  End If 
  9265. Else If CATEGORIEOGGETTI=0 and PERSONAGGI=0 and SOLDI=True
  9266.  Proc PRENDIDEISOLDI
  9267. Else If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=False
  9268.  Print At(0,ULTIMALINEA);"Vuoi prendere un oggetto od un personaggio (o/p) ?>";
  9269.  OGGETTOOPERSONAGGIO$=Input$(1)
  9270.  OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  9271.  If OGGETTOOPERSONAGGIO$="o"
  9272.   Proc PRENDIUNOGGETTO
  9273.  Else If OGGETTOOPERSONAGGIO$="p"
  9274.   Proc PRENDIUNPERSONAGGIO
  9275.  End If 
  9276. Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=False
  9277.  Proc PRENDIUNOGGETTO
  9278. Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=False
  9279.  Proc PRENDIUNPERSONAGGIO
  9280. Else 
  9281.  Print At(0,ULTIMALINEA);"Non ci sono oggetti,personaggi o soldi da prendere";
  9282.  If _MUSICA=False
  9283.   Bell 1
  9284.  End If 
  9285.  Proc _ASPETTA
  9286. End If 
  9287. End Proc
  9288. Procedure PRENDIAO[AZIONE,P]
  9289. If TEMP0DIATTRAVERSAMENTOP(P)>0 Then Pop Proc
  9290. NUMEROOGGETTIDELPERSONAGGIOP=-1
  9291. For A=0 To NUMEROO
  9292.  If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False
  9293.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  9294.   B=A
  9295.  End If 
  9296. Next A
  9297. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  9298.  Pop Proc
  9299. End If 
  9300. If NUMEROOGGETTIDELPERSONAGGIOP=0
  9301.  A=B
  9302. Else 
  9303.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  9304.  B=0
  9305.  For A=0 To NUMEROO
  9306.   If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False
  9307.    OGGETTODELPERSONAGGIOP(B)=A
  9308.    Inc B
  9309.   End If 
  9310.  Next A
  9311.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  9312. End If 
  9313. POSIZIONEO(A)=-1-P : Bset 0,TIPOO(A)
  9314. If Btst(1,TIPOO(A))=True
  9315.  Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(A))
  9316. Else 
  9317.  Add PESONETTOP(P),PESOCO(CATEGORIAO(A))
  9318. End If 
  9319. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9320.  For B=0 To NUMEROO
  9321.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9322.    If Btst(1,TIPOO(B))=True
  9323.     Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(B))
  9324.    Else 
  9325.     Add PESONETTOP(P),PESOCO(CATEGORIAO(B))
  9326.    End If 
  9327.   End If 
  9328.  Next B
  9329.  For B=1 To NUMEROP
  9330.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9331.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  9332.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  9333.   End If 
  9334.  Next B
  9335. End If 
  9336. If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9337.  Print NOMEP$(P);" prende 1 ";
  9338.  If Btst(1,TIPOO(A))=True
  9339.   Print NOMESRO$(CATEGORIAO(A))
  9340.  Else 
  9341.   Print NOMESCO$(CATEGORIAO(A))
  9342.  End If 
  9343. End If 
  9344. Dec PARAAAZIONEP(AZIONE,P)
  9345. If PARAAAZIONEP(AZIONE,P)=0
  9346.  FINEA(AZIONE,P)=True
  9347. End If 
  9348. End Proc
  9349. Procedure PRENDIAOB[AZIONE,P]
  9350. If TEMP0DIATTRAVERSAMENTOP(P)>0 Then Pop Proc
  9351. NUMEROOGGETTIDELPERSONAGGIOP=-1
  9352. For A=0 To NUMEROO
  9353.  If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  9354.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  9355.   B=A
  9356.  End If 
  9357. Next A
  9358. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  9359.  Pop Proc
  9360. End If 
  9361. If NUMEROOGGETTIDELPERSONAGGIOP=0
  9362.  A=B
  9363. Else 
  9364.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  9365.  B=0
  9366.  For A=0 To NUMEROO
  9367.   If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  9368.    OGGETTODELPERSONAGGIOP(B)=A
  9369.    Inc B
  9370.   End If 
  9371.  Next A
  9372.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  9373. End If 
  9374. POSIZIONEO(A)=-1-P : Bset 0,TIPOO(A)
  9375. If Btst(1,TIPOO(A))=True
  9376.  Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(A))
  9377. Else 
  9378.  Add PESONETTOP(P),PESOCO(CATEGORIAO(A))
  9379. End If 
  9380. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9381.  For B=0 To NUMEROO
  9382.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9383.    If Btst(1,TIPOO(B))=True
  9384.     Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(B))
  9385.    Else 
  9386.     Add PESONETTOP(P),PESOCO(CATEGORIAO(B))
  9387.    End If 
  9388.   End If 
  9389.  Next B
  9390.  For B=1 To NUMEROP
  9391.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9392.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  9393.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  9394.   End If 
  9395.  Next B
  9396. End If 
  9397. If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9398.  Print NOMEP$(P);" prende 1 ";
  9399.  If Btst(1,TIPOO(A))=True
  9400.   Print NOMESRO$(CATEGORIAO(A))
  9401.  Else 
  9402.   Print NOMESCO$(CATEGORIAO(A))
  9403.  End If 
  9404. End If 
  9405. Dec PARAAAZIONEP(AZIONE,P)
  9406. If PARAAAZIONEP(AZIONE,P)=0
  9407.  FINEA(AZIONE,P)=True
  9408. End If 
  9409. End Proc
  9410. Procedure PRENDIAOTB[AZIONE,P]
  9411. If TEMP0DIATTRAVERSAMENTOP(P)>0 Then Pop Proc
  9412. NUMEROOGGETTIDELPERSONAGGIOP=-1
  9413. For A=0 To NUMEROO
  9414.  If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  9415.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  9416.   B=A
  9417.  End If 
  9418. Next A
  9419. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  9420.  Pop Proc
  9421. End If 
  9422. If NUMEROOGGETTIDELPERSONAGGIOP=0
  9423.  A=B
  9424. Else 
  9425.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  9426.  B=0
  9427.  For A=0 To NUMEROO
  9428.   If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  9429.    OGGETTODELPERSONAGGIOP(B)=A
  9430.    Inc B
  9431.   End If 
  9432.  Next A
  9433.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  9434. End If 
  9435. POSIZIONEO(A)=-1-P : Bset 0,TIPOO(A)
  9436. If Btst(1,TIPOO(A))=True
  9437.  Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(A))
  9438. Else 
  9439.  Add PESONETTOP(P),PESOCO(CATEGORIAO(A))
  9440. End If 
  9441. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9442.  For B=0 To NUMEROO
  9443.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9444.    If Btst(1,TIPOO(B))=True
  9445.     Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(B))
  9446.    Else 
  9447.     Add PESONETTOP(P),PESOCO(CATEGORIAO(B))
  9448.    End If 
  9449.   End If 
  9450.  Next B
  9451.  For B=1 To NUMEROP
  9452.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9453.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  9454.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  9455.   End If 
  9456.  Next B
  9457. End If 
  9458. If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9459.  Print NOMEP$(P);" prende 1 ";
  9460.  If Btst(1,TIPOO(A))=True
  9461.   Print NOMESRO$(CATEGORIAO(A))
  9462.  Else 
  9463.   Print NOMESCO$(CATEGORIAO(A))
  9464.  End If 
  9465. End If 
  9466. Dec PARAAAZIONEP(AZIONE,P)
  9467. If PARAAAZIONEP(AZIONE,P)=0
  9468.  FINEA(AZIONE,P)=True
  9469. End If 
  9470. End Proc
  9471. Procedure PRENDIAP[AZIONE,P]
  9472. For A=1 To NUMEROP
  9473.  If POSIZIONEP(A)=POSIZIONEP(P) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(P) and DREZIONEPRESAP(A)=DREZIONEPRESAP(P)
  9474.   POSIZIONEP(A)=-1-P : Bset 0,TIPOP(A)
  9475.   Add PESONETTOP(P),PESOP(A)*1000
  9476.   Add PESONETTOP(P),PESONETTOP(A)
  9477.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9478.    Print NOMEP$(P);" prende ";NOMEP$(A)
  9479.   End If 
  9480.   Dec PARABAZIONEP(AZIONE,P)
  9481.   If PARABAZIONEP(AZIONE,P)=0
  9482.    FINEA(AZIONE,P)=True
  9483.   End If 
  9484.   Exit 
  9485.  End If 
  9486. Next A
  9487. End Proc
  9488. Procedure PRENDIDEISOLDI
  9489. Locate 0,ULTIMALINEA : Input "Quanti soldi vuoi prendere (0-"+Str$(SOLDIL(POSIZIONEP(0)))-" "+") ?>";SOLDI$;
  9490. Curs Off 
  9491. If SOLDI$<>""
  9492.  SOLDI=Val(SOLDI$)
  9493.  Proc LIMITI[SOLDI,0,SOLDIL(POSIZIONEP(0))] : SOLDI=Param
  9494.  If SOLDI>0
  9495.   Add SOLDIP(0),SOLDI
  9496.   Add SOLDIL(POSIZIONEP(0)),-SOLDI
  9497.   Add PESONETTOP(0),SOLDI*PESOS
  9498.   COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9499.   Print "Hai deciso di prendere";SOLDI;
  9500.   If SOLDI=1
  9501.    Print " soldo";
  9502.   Else 
  9503.    Print " soldi";
  9504.   End If 
  9505.   Proc _ASPETTA
  9506.  End If 
  9507. End If 
  9508. End Proc
  9509. Procedure PRENDIPA[AZIONE,P]
  9510. A=PARAAAZIONEP(AZIONE,P)
  9511. If POSIZIONEP(A)=POSIZIONEP(P)
  9512.  POSIZIONEP(A)=-1-P : Bset 0,TIPOP(A)
  9513.  Add PESONETTOP(P),PESOP(A)*1000
  9514.  Add PESONETTOP(P),PESONETTOP(A)
  9515.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9516.   Print NOMEP$(P);" prende ";NOMEP$(A)
  9517.  End If 
  9518.  FINEA(AZIONE,P)=True
  9519. End If 
  9520. End Proc
  9521. Procedure PRENDIUNOGGETTO
  9522. For A=0 To NUMEROCO
  9523.  If OGGETTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  9524.  If RESTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  9525. Next A
  9526. If CATEGORIEOGGETTI>0
  9527.  If CATEGORIEOGGETTI>1
  9528.   Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi prendere ?>";OGGETTO$;
  9529.   Curs Off 
  9530.   If OGGETTO$<>""
  9531.    For A=0 To NUMEROO
  9532.     If POSIZIONEO(A)=POSIZIONEP(0)
  9533.      If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=False
  9534.       If Btst(7,TIPOCO(CATEGORIAO(A)))=True
  9535.        Print At(0,ULTIMALINEA);"Non puoi prendere 1 ";NOMESCO$(CATEGORIAO(A));", ï¿½ residente";
  9536.        If _MUSICA=False
  9537.         Bell 1
  9538.        End If 
  9539.       Else 
  9540.        POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
  9541.        Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  9542.        Add PESONETTOP(0),PESOCO(CATEGORIAO(A))
  9543.        If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9544.         For B=0 To NUMEROO
  9545.          If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9546.           If Btst(1,TIPOO(B))=True
  9547.            Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
  9548.           Else 
  9549.            Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
  9550.           End If 
  9551.          End If 
  9552.         Next B
  9553.         For B=1 To NUMEROP
  9554.          If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9555.           Add PESONETTOP(0),PESOP(B)*1000
  9556.           Add PESONETTOP(0),PESONETTOP(B)
  9557.          End If 
  9558.         Next B
  9559.        End If 
  9560.        COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9561.        Print "Hai deciso di prendere 1 ";NOMESCO$(CATEGORIAO(A));
  9562.       End If 
  9563.       Proc _ASPETTA : Exit 
  9564.      Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=True
  9565.       If Btst(7,TIPOCO(CATEGORIAO(A)))=True
  9566.        Print At(0,ULTIMALINEA);"Non puoi prendere 1 ";NOMESRO$(CATEGORIAO(A));", ï¿½ residente";
  9567.        If _MUSICA=False
  9568.         Bell 1
  9569.        End If 
  9570.       Else 
  9571.        POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
  9572.        Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  9573.        Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(A))
  9574.        If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9575.         For B=0 To NUMEROO
  9576.          If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9577.           If Btst(1,TIPOO(B))=True
  9578.            Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
  9579.           Else 
  9580.            Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
  9581.           End If 
  9582.          End If 
  9583.         Next B
  9584.         For B=1 To NUMEROP
  9585.          If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9586.           Add PESONETTOP(0),PESOP(B)*1000
  9587.           Add PESONETTOP(0),PESONETTOP(B)
  9588.          End If 
  9589.         Next B
  9590.        End If 
  9591.        COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9592.        Print "Hai deciso di prendere 1 ";NOMESRO$(CATEGORIAO(A));
  9593.       End If 
  9594.       Proc _ASPETTA : Exit 
  9595.      End If 
  9596.     End If 
  9597.    Next A
  9598.    If A=NUMEROO+1
  9599.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";OGGETTO$;
  9600.     If _MUSICA=False
  9601.      Bell 1
  9602.     End If 
  9603.     Proc _ASPETTA
  9604.    End If 
  9605.   End If 
  9606.  Else 
  9607.   For A=0 To NUMEROO
  9608.    If POSIZIONEO(A)=POSIZIONEP(0) and Btst(7,TIPOCO(CATEGORIAO(A)))=False
  9609.     POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
  9610.     If Btst(1,TIPOO(A))=True
  9611.      Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  9612.     Else 
  9613.      Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  9614.     End If 
  9615.     Add PESONETTOP(0),PESOCO(CATEGORIAO(A))
  9616.     If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9617.      For B=0 To NUMEROO
  9618.       If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9619.        If Btst(1,TIPOO(B))=True
  9620.         Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
  9621.        Else 
  9622.         Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
  9623.        End If 
  9624.       End If 
  9625.      Next B
  9626.      For B=1 To NUMEROP
  9627.       If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9628.        Add PESONETTOP(0),PESOP(B)*1000
  9629.        Add PESONETTOP(0),PESONETTOP(B)
  9630.       End If 
  9631.      Next B
  9632.     End If 
  9633.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9634.     Print "Hai deciso di prendere 1 ";
  9635.     If Btst(1,TIPOO(A))=True
  9636.      Print NOMESRO$(CATEGORIAO(A));
  9637.     Else 
  9638.      Print NOMESCO$(CATEGORIAO(A));
  9639.     End If 
  9640.     Proc _ASPETTA : Exit 
  9641.    End If 
  9642.   Next A
  9643.  End If 
  9644. End If 
  9645. End Proc
  9646. Procedure PRENDIUNPERSONAGGIO
  9647. For A=1 To NUMEROP
  9648.  If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGI
  9649. Next A
  9650. If PERSONAGGI>0
  9651.  If PERSONAGGI>1
  9652.   Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi prendere ?>";PERSONAGGIO$;
  9653.   Curs Off 
  9654.   If PERSONAGGIO$<>""
  9655.    For A=1 To NUMEROP
  9656.     If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A)) and POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  9657.      POSIZIONEP(A)=-1 : Bset 0,TIPOP(A)
  9658.      Add PESONETTOP(0),PESOP(A)*1000
  9659.      Add PESONETTOP(0),PESONETTOP(A)
  9660.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9661.      Print "Hai deciso di prendere ";NOMEP$(A);
  9662.      Proc _ASPETTA : Exit 
  9663.     End If 
  9664.    Next A
  9665.    If A=NUMEROP+1
  9666.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  9667.     If _MUSICA=False
  9668.      Bell 1
  9669.     End If 
  9670.     Proc _ASPETTA
  9671.    End If 
  9672.   End If 
  9673.  Else 
  9674.   For A=1 To NUMEROP
  9675.    If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  9676.     POSIZIONEP(A)=-1 : Bset 0,TIPOP(A)
  9677.     Add PESONETTOP(0),PESOP(A)*1000
  9678.     Add PESONETTOP(0),PESONETTOP(A)
  9679.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9680.     Print "Hai deciso di prendere ";NOMEP$(A);
  9681.     Proc _ASPETTA : Exit 
  9682.    End If 
  9683.   Next A
  9684.  End If 
  9685. End If 
  9686. End Proc
  9687. Procedure SALVAUNFILE
  9688. Show On : Cls 
  9689. FILE$=Fsel$("*.Adv",NOMEFILE$,"Salva un file","di Adventures Conceiver")
  9690. If Len(FILE$)>0
  9691.  If Upper$(Right$(FILE$,4))<>".ADV"
  9692.   FILE$=FILE$+".Adv"
  9693.  End If 
  9694.  Proc TIC["Sto salvando il file",ULTIMALINEA-1]
  9695.  Proc TIC[FILE$,ULTIMALINEA]
  9696.  Bsave FILE$,Start(BANCO) To Start(BANCO)+Length(BANCO) : Proc _ASPETTA
  9697. End If 
  9698. Erase BANCO
  9699. Hide On 
  9700. End Proc
  9701. Procedure SCOPODELGIOCO[NUOVOSCOPODELGIOCO]
  9702. SCOPODELGIOCO=AZIONEP(7,0)
  9703. PARA=PARAAAZIONEP(7,0)
  9704. PARB=PARABAZIONEP(7,0)
  9705. PARC=PARACAZIONEP(7,0)
  9706. Cls 
  9707. If NUOVOSCOPODELGIOCO=True
  9708.  If M0DIFICA=False
  9709.   Proc TIC[MESSAGGIO3$,0] : Print 
  9710.  End If 
  9711.  Print "Scopo del gioco>";
  9712.  If SCOPODELGIOCO=0
  9713.   Print "nessuno"
  9714.  Else If SCOPODELGIOCO=1
  9715.   Print "Dai a ";NOMEP$(PARA);PARB;" ";
  9716.   If PARB=1
  9717.    Print NOMESCO$(PARC)
  9718.   Else 
  9719.    Print NOMEPCO$(PARC)
  9720.   End If 
  9721.  Else If SCOPODELGIOCO=2
  9722.   Print "Dai a ";NOMEP$(PARA);PARB;" oggett";
  9723.   If PARB=1
  9724.    Print "o ";
  9725.   Else 
  9726.    Print "i ";
  9727.   End If 
  9728.   Proc MOSTRACATEGORIAPERAZIONE[PARC]
  9729.  Else If SCOPODELGIOCO=3
  9730.   Print "Dai a ";NOMEP$(PARA);PARB;" sold";
  9731.   If PARB=1
  9732.    Print "o"
  9733.   Else 
  9734.    Print "i"
  9735.   End If 
  9736.  Else If SCOPODELGIOCO=4
  9737.   Print "Guadagna";PARA;" sold";
  9738.   If PARA=1
  9739.    Print "o"
  9740.   Else 
  9741.    Print "i"
  9742.   End If 
  9743.  Else If SCOPODELGIOCO=5
  9744.   Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" ";
  9745.   If PARB=1
  9746.    Print NOMESCO$(PARC)
  9747.   Else 
  9748.    Print NOMEPCO$(PARC)
  9749.   End If 
  9750.  Else If SCOPODELGIOCO=6
  9751.   Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" oggett";
  9752.   If PARB=1
  9753.    Print "o ";
  9754.   Else 
  9755.    Print "i ";
  9756.   End If 
  9757.   Proc MOSTRACATEGORIAPERAZIONE[PARC]
  9758.  Else If SCOPODELGIOCO=7
  9759.   Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" sold";
  9760.   If PARB=1
  9761.    Print "o"
  9762.   Else 
  9763.    Print "i"
  9764.   End If 
  9765.  Else If SCOPODELGIOCO=8
  9766.   Print "Prendi";PARA;" ";
  9767.   If PARA=1
  9768.    Print NOMESCO$(PARB)
  9769.   Else 
  9770.    Print NOMEPCO$(PARB)
  9771.   End If 
  9772.  Else If SCOPODELGIOCO=9
  9773.   Print "Prendi";PARA;" oggett";
  9774.   If PARA=1
  9775.    Print "o ";
  9776.   Else 
  9777.    Print "i ";
  9778.   End If 
  9779.   Proc MOSTRACATEGORIAPERAZIONE[PARB]
  9780.  Else If SCOPODELGIOCO=10
  9781.   Print "Trova il personaggio";PARA;" di nome>";NOMEP$(PARA)
  9782.  Else If SCOPODELGIOCO=11
  9783.   Print "Uccidi il personaggio";PARA;" di nome>";NOMEP$(PARA)
  9784.  Else If SCOPODELGIOCO=12
  9785.   Print "Usa 1 ";NOMESCO$(PARA);" su 1 ";NOMESCO$(PARB)
  9786.  Else If SCOPODELGIOCO=13
  9787.   Print "Usa 1 ";NOMESCO$(PARA);" su 1 oggetto ";
  9788.   Proc MOSTRACATEGORIAPERAZIONE[PARB]
  9789.  Else If SCOPODELGIOCO=14
  9790.   Print "Usa 1 ";NOMESCO$(PARA);" su ";NOMEP$(PARB)
  9791.  Else If SCOPODELGIOCO=15
  9792.   Print "Usa 1 oggetto ";
  9793.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  9794.   Print Space$(17);"su 1 ";NOMESCO$(PARB)
  9795.  Else If SCOPODELGIOCO=16
  9796.   Print "Usa 1 oggetto ";
  9797.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  9798.   Print Space$(17);"su 1 oggetto ";
  9799.   Proc MOSTRACATEGORIAPERAZIONE[PARB]
  9800.  Else If SCOPODELGIOCO=17
  9801.   Print "Usa 1 oggetto ";
  9802.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  9803.   Print Space$(17);"su ";NOMEP$(PARB)
  9804.  Else If SCOPODELGIOCO=18
  9805.   Print "Vai nel luogo";PARA;" di nome>";NOMEL$(PARA)
  9806.  End If 
  9807. Else 
  9808.  If NUOVOSCOPODELGIOCO=1
  9809. 'Dai al personaggio PARA PARB oggetti PARC 
  9810.   Locate 0,ULTIMALINEA : Input "A quale personaggio vuoi dare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOACUIDARE$
  9811.   If PERSONAGGIOACUIDARE$<>""
  9812.    PERSONAGGIOACUIDARE=Val(PERSONAGGIOACUIDARE$)
  9813.    Proc LIMITI[PERSONAGGIOACUIDARE,1,NUMEROP] : PARA=Param
  9814.    Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi dare (1-65535) ?>";NUMEROOGGETTIDADARE$
  9815.    If NUMEROOGGETTIDADARE$<>""
  9816.     NUMEROOGGETTIDADARE=Val(NUMEROOGGETTIDADARE$)
  9817.     Proc LIMITI[NUMEROOGGETTIDADARE,1,65535] : PARB=Param
  9818.     MOSTRAOGGETTOPERINSERIMENTO[0] : PARC=Param
  9819.    End If 
  9820.   End If 
  9821.  Else If NUOVOSCOPODELGIOCO=2
  9822. 'Dai al personaggio PARA PARB oggetti di tipo PARC 
  9823.   Locate 0,ULTIMALINEA : Input "A quale personaggio vuoi dare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOACUIDARE$
  9824.   If PERSONAGGIOACUIDARE$<>""
  9825.    PERSONAGGIOACUIDARE=Val(PERSONAGGIOACUIDARE$)
  9826.    Proc LIMITI[PERSONAGGIOACUIDARE,1,NUMEROP] : PARA=Param
  9827.    Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi dare (1-65535) ?>";NUMEROOGGETTIDADARE$
  9828.    If NUMEROOGGETTIDADARE$<>""
  9829.     NUMEROOGGETTIDADARE=Val(NUMEROOGGETTIDADARE$)
  9830.     Proc LIMITI[NUMEROOGGETTIDADARE,1,65535] : PARB=Param
  9831.     MOSTRACATEGORIAPERINSERIMENTO[0] : PARC=Param
  9832.    End If 
  9833.   End If 
  9834.  Else If NUOVOSCOPODELGIOCO=3
  9835. 'Dai al personaggio PARA PARB soldi
  9836.   Locate 0,ULTIMALINEA : Input "A quale personaggio vuoi dare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOACUIDARE$
  9837.   If PERSONAGGIOACUIDARE$<>""
  9838.    PERSONAGGIOACUIDARE=Val(PERSONAGGIOACUIDARE$)
  9839.    Proc LIMITI[PERSONAGGIOACUIDARE,1,NUMEROP] : PARA=Param
  9840.    Locate 0,ULTIMALINEA : Input "Quanti soldi gli devi dare (1-65535) ?>";SOLDIDADARE$
  9841.    If SOLDIDADARE$<>""
  9842.     SOLDIDADARE=Val(SOLDIDADARE$)
  9843.     Proc LIMITI[SOLDIDADARE,1,65535] : PARB=Param
  9844.    End If 
  9845.   End If 
  9846.  Else If NUOVOSCOPODELGIOCO=4
  9847. 'Guadagna PARA soldi 
  9848.   Locate 0,ULTIMALINEA : Input "Quanti soldi devi guadagnare (1-65535) ?>";SOLDIDAGUADAGNARE$
  9849.   If SOLDIDAGUADAGNARE$<>""
  9850.    SOLDIDAGUADAGNARE=Val(SOLDIDAGUADAGNARE$)
  9851.    Proc LIMITI[SOLDIDAGUADAGNARE,1,65535] : PARA=Param
  9852.   End If 
  9853.  Else If NUOVOSCOPODELGIOCO=5
  9854. 'Lascia nel luogo PARA PARB oggetti PARC 
  9855.   Locate 0,ULTIMALINEA : Input "In quale luogo vuoi lasciare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUILASCIARE$
  9856.   If LUOGOINCUILASCIARE$<>""
  9857.    LUOGOINCUILASCIARE=Val(LUOGOINCUILASCIARE$)
  9858.    Proc LIMITI[LUOGOINCUILASCIARE,0,NUMEROL] : PARA=Param
  9859.    Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi dare (1-65535) ?>";NUMEROOGGETTIDADARE$
  9860.    If NUMEROOGGETTIDADARE$<>""
  9861.     NUMEROOGGETTIDADARE=Val(NUMEROOGGETTIDADARE$)
  9862.     Proc LIMITI[NUMEROOGGETTIDADARE,1,65535] : PARB=Param
  9863.     MOSTRAOGGETTOPERINSERIMENTO[0] : PARC=Param
  9864.    End If 
  9865.   End If 
  9866.  Else If NUOVOSCOPODELGIOCO=6
  9867. 'Lascia nel luogo PARA PARB oggetti di tipo PARC 
  9868.   Locate 0,ULTIMALINEA : Input "In quale luogo vuoi lasciare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUILASCIARE$
  9869.   If LUOGOINCUILASCIARE$<>""
  9870.    LUOGOINCUILASCIARE=Val(LUOGOINCUILASCIARE$)
  9871.    Proc LIMITI[LUOGOINCUILASCIARE,0,NUMEROL] : PARA=Param
  9872.    Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi dare (1-65535) ?>";NUMEROOGGETTIDADARE$
  9873.    If NUMEROOGGETTIDADARE$<>""
  9874.     NUMEROOGGETTIDADARE=Val(NUMEROOGGETTIDADARE$)
  9875.     Proc LIMITI[NUMEROOGGETTIDADARE,1,65535] : PARB=Param
  9876.     MOSTRACATEGORIAPERINSERIMENTO[0] : PARC=Param
  9877.    End If 
  9878.   End If 
  9879.  Else If NUOVOSCOPODELGIOCO=7
  9880. 'Lascia nel luogo PARA PARB soldi
  9881.   Locate 0,ULTIMALINEA : Input "In quale luogo vuoi lasciare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUILASCIARE$
  9882.   If LUOGOINCUILASCIARE$<>""
  9883.    LUOGOINCUILASCIARE=Val(LUOGOINCUILASCIARE$)
  9884.    Proc LIMITI[LUOGOINCUILASCIARE,0,NUMEROL] : PARA=Param
  9885.    Locate 0,ULTIMALINEA : Input "Quanti soldi ci devi lasciare (1-65535) ?>";SOLDIDALASCIARE$
  9886.    If SOLDIDALASCIARE$<>""
  9887.     SOLDIDALASCIARE=Val(SOLDIDALASCIARE$)
  9888.     Proc LIMITI[SOLDIDALASCIARE,1,65535] : PARB=Param
  9889.    End If 
  9890.   End If 
  9891.  Else If NUOVOSCOPODELGIOCO=8
  9892. 'Prendi PARA oggetti PARB
  9893.   Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi prendere (1-65535) ?>";NUMEROOGGETTIDAPRENDERE$
  9894.   If NUMEROOGGETTIDAPRENDERE$<>""
  9895.    NUMEROOGGETTIDAPRENDERE=Val(NUMEROOGGETTIDAPRENDERE$)
  9896.    Proc LIMITI[NUMEROOGGETTIDAPRENDERE,1,65535] : PARA=Param
  9897.    MOSTRAOGGETTOPERINSERIMENTO[0] : PARB=Param
  9898.   End If 
  9899.  Else If NUOVOSCOPODELGIOCO=9
  9900. 'Prendi PARA oggetti di tipo PARB
  9901.   Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi prendere (1-65535) ?>";NUMEROOGGETTIDAPRENDERE$
  9902.   If NUMEROOGGETTIDAPRENDERE$<>""
  9903.    NUMEROOGGETTIDAPRENDERE=Val(NUMEROOGGETTIDAPRENDERE$)
  9904.    Proc LIMITI[NUMEROOGGETTIDAPRENDERE,1,65535] : PARA=Param
  9905.    MOSTRACATEGORIAPERINSERIMENTO[0] : PARB=Param
  9906.   End If 
  9907.  Else If NUOVOSCOPODELGIOCO=10
  9908. 'Trova il personaggio PARA 
  9909.   Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi trovare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIODATROVARE$
  9910.   If PERSONAGGIODATROVARE$<>""
  9911.    PERSONAGGIODATROVARE=Val(PERSONAGGIODATROVARE$)
  9912.    Proc LIMITI[PERSONAGGIODATROVARE,1,NUMEROP] : PARA=Param
  9913.   End If 
  9914.  Else If NUOVOSCOPODELGIOCO=11
  9915. 'Uccidi il personaggio PARA  
  9916.   Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi uccidere (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIODAUCCIDERE$
  9917.   If PERSONAGGIODAUCCIDERE$<>""
  9918.    PERSONAGGIODAUCCIDERE=Val(PERSONAGGIODAUCCIDERE$)
  9919.    Proc LIMITI[PERSONAGGIODAUCCIDERE,1,NUMEROP] : PARA=Param
  9920.   End If 
  9921.  Else If NUOVOSCOPODELGIOCO=12
  9922. 'Usa un'oggetto PARA su un'oggetto PARB
  9923.   MOSTRAOGGETTOPERINSERIMENTO[0] : PARA=Param
  9924.   MOSTRAOGGETTOPERINSERIMENTO[0] : PARB=Param
  9925.  Else If NUOVOSCOPODELGIOCO=13
  9926. 'Usa un'oggetto PARA su un'oggetto di tipo PARB
  9927.   MOSTRAOGGETTOPERINSERIMENTO[0] : PARA=Param
  9928.   MOSTRACATEGORIAPERINSERIMENTO[0] : PARB=Param
  9929.  Else If NUOVOSCOPODELGIOCO=14
  9930. 'Usa un'oggetto PARA sul personaggio PARB
  9931.   MOSTRAOGGETTOPERINSERIMENTO[0] : PARA=Param
  9932.   Locate 0,ULTIMALINEA : Input "Su quale personaggio vuoi usare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOSUCUIUSARE$
  9933.   If PERSONAGGIOSUCUIUSARE$<>""
  9934.    PERSONAGGIOSUCUIUSARE=Val(PERSONAGGIOSUCUIUSARE$)
  9935.    Proc LIMITI[PERSONAGGIOSUCUIUSARE,1,NUMEROP] : PARB=Param
  9936.   End If 
  9937.  Else If NUOVOSCOPODELGIOCO=15
  9938. 'Usa un'oggetto di tipo PARA su un'oggetto PARB
  9939.   MOSTRACATEGORIAPERINSERIMENTO[0] : PARA=Param
  9940.   MOSTRAOGGETTOPERINSERIMENTO[0] : PARB=Param
  9941.  Else If NUOVOSCOPODELGIOCO=16
  9942. 'Usa un'oggetto di tipo PARA su un'oggetto di tipo PARB
  9943.   MOSTRACATEGORIAPERINSERIMENTO[0] : PARA=Param
  9944.   MOSTRACATEGORIAPERINSERIMENTO[0] : PARB=Param
  9945.  Else If NUOVOSCOPODELGIOCO=17
  9946. 'Usa 1 oggetto di tipo PARA sul personaggio PARB 
  9947.   MOSTRACATEGORIAPERINSERIMENTO[0] : PARA=Param
  9948.   Locate 0,ULTIMALINEA : Input "Su quale personaggio vuoi usare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOSUCUIUSARE$
  9949.   If PERSONAGGIOSUCUIUSARE$<>""
  9950.    PERSONAGGIOSUCUIUSARE=Val(PERSONAGGIOSUCUIUSARE$)
  9951.    Proc LIMITI[PERSONAGGIOSUCUIUSARE,1,NUMEROP] : PARB=Param
  9952.   End If 
  9953.  Else If NUOVOSCOPODELGIOCO=18
  9954. 'Vai nel luogo PARA
  9955.   Locate 0,ULTIMALINEA : Input "In quale luogo vuoi andare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUIANDARE$
  9956.   If LUOGOINCUIANDARE$<>""
  9957.    LUOGOINCUIANDARE=Val(LUOGOINCUIANDARE$)
  9958.    Proc LIMITI[LUOGOINCUIANDARE,0,NUMEROL] : PARA=Param
  9959.   End If 
  9960.  End If 
  9961.  AZIONEP(7,0)=NUOVOSCOPODELGIOCO
  9962.  PARAAAZIONEP(7,0)=PARA
  9963.  PARABAZIONEP(7,0)=PARB
  9964.  PARACAZIONEP(7,0)=PARC
  9965. End If 
  9966. Curs Off 
  9967. End Proc
  9968. Procedure SEGUI[AZIONE,P]
  9969. End Proc
  9970. Procedure SEGUIPA[AZIONE,P]
  9971. End Proc
  9972. Procedure SETTASCHERMO
  9973. Hide On 
  9974. If Ntsc Then LUNGHEZZASCHERMO=208 Else LUNGHEZZASCHERMO=264
  9975. ULTIMALINEA=LUNGHEZZASCHERMO/8-2
  9976. Screen Open 0,640,LUNGHEZZASCHERMO,2,Hires : Curs Off : Flash Off 
  9977. Palette $60,$CCC : Pen 1 : Paper 0 : Ink 1,0
  9978. Set Curs 170,85,170,85,170,85,170,85
  9979. Wait Vbl : Limit Mouse 
  9980. End Proc
  9981. Procedure SUONAUNMODULO[M0DO]
  9982. If M0DO=True
  9983.  Show On 
  9984.  NOMEMODULO$=Fsel$("**","","Carica un modulo sonoro da ascoltare")
  9985.  If NOMEMODULO$<>""
  9986.   Track Loop Of : Track Stop 
  9987.   Track Load NOMEMODULO$,BANCOMODULO
  9988.   Track Play BANCOMODULO : Track Loop On 
  9989.  End If 
  9990.  Hide On 
  9991. Else 
  9992.  M0DULO=Rnd(92)+1
  9993.  If M0DULO=93
  9994.   M0DULOPRESENTE=Exist("Motivi:Modules/Beacand.mod")
  9995.   If M0DULOPRESENTE=True
  9996.    Track Load "Motivi:Modules/Beacand.mod",BANCOMODULO
  9997.   End If 
  9998.  Else If M0DULO=92
  9999.   M0DULOPRESENTE=Exist("Motivi:Modules/ANewJob.mod")
  10000.   If M0DULOPRESENTE=True
  10001.    Track Load "Motivi:Modules/ANewJob.mod",BANCOMODULO
  10002.   End If 
  10003.  Else 
  10004.   M0DULOPRESENTE=Exist("Motivi:Modules/mod."+Str$(M0DULO)-" ")
  10005.   If M0DULOPRESENTE=True
  10006.    Track Load "Motivi:Modules/mod."+Str$(M0DULO)-" ",BANCOMODULO
  10007.   End If 
  10008.  End If 
  10009.  If M0DULOPRESENTE=True
  10010.   Track Loop Of : Track Stop 
  10011.   Track Play BANCOMODULO : Track Loop On 
  10012.  End If 
  10013. End If 
  10014. End Proc[NOMEMODULO$]
  10015. Procedure TEMP0
  10016. Print "Tempo trascorso>";
  10017. If M0DOVISUALIZZAZIONETEMPO=True
  10018.  GIORNI=TEMP0TRASCORSO/1440 : Print Str$(GIORNI)-" ";
  10019.  If GIORNI=1
  10020.   Print " giorno"; Else Print " giorni";
  10021.  End If 
  10022.  _ORE=TEMP0TRASCORSO/60 mod 24 : Print _ORE;
  10023.  If _ORE=1
  10024.   Print " ora"; Else Print " ore";
  10025.  End If 
  10026.  M1NUTI=TEMP0TRASCORSO mod 60 : Print M1NUTI;
  10027.  If M1NUTI=1
  10028.   Print " minuto" Else Print " minuti"
  10029.  End If 
  10030. Else 
  10031.  GIORNI=TEMP0TRASCORSO/1440 : Print "Giorni";GIORNI;
  10032.  _ORE=TEMP0TRASCORSO/60 mod 24
  10033.  Print Using " #";_ORE/10; Using "#";_ORE mod 10;
  10034.  M1NUTI=TEMP0TRASCORSO mod 60
  10035.  Print Using ":#";M1NUTI/10; Using "#";M1NUTI mod 10
  10036. End If 
  10037. End Proc
  10038. Procedure TIC[TESTO$,LINEA]
  10039. '-> Testo Invertito e Centrato by Stefano Regattin 
  10040. 'i> 23 maggio 1996 
  10041. 'm> 25 maggio 1996 
  10042. '--------------------------------------------------------------------------- 
  10043. 'LINEA contiene il numero di linea dove si posizioner� il testo; se vale -1
  10044. ' (True) il testo sar� posizionato alla linea dove si trova il cursore; in 
  10045. ' questo caso sar� necessario un comando Print per spostare il cursore 
  10046. '----------------------------------------------------------------------
  10047. If LINEA=True Then L=Y Curs Else L=LINEA
  10048. Locate 0,L : Inverse On : Cline : Centre TESTO$ : Inverse Off 
  10049. End Proc
  10050. Procedure TIPODILUOGO
  10051. Print "Tipo di luogo>";TIPOL$(TIPOL(POSIZIONEP(0)))
  10052. End Proc
  10053. Procedure TIPODILUOGODIDESTINAZIONE
  10054. Print "Tipo di luogo di destinazione>";TIPOL$(TIPOL(LUOGODIDESTINAZIONEP(0)))
  10055. End Proc
  10056. Procedure USA
  10057. For A=0 To NUMEROCO
  10058.  If OGGETTIDELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  10059.  If RESTIDELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  10060. Next A
  10061. If CATEGORIEOGGETTI>0
  10062.  If CATEGORIEOGGETTI>1
  10063.   Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi usare ?>";OGGETTO$;
  10064.   Curs Off 
  10065.   If OGGETTO$<>""
  10066.    For A=0 To NUMEROO
  10067.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10068.      If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=False
  10069.       Proc OGGETTOOPERSONAGGIOSUCUIUSARE[A] : Exit 
  10070.      Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=True
  10071.       Proc OGGETTOOPERSONAGGIOSUCUIUSARE[A] : Exit 
  10072.      End If 
  10073.     End If 
  10074.    Next A
  10075.    If A=NUMEROO+1
  10076.     Locate 0,ULTIMALINEA : Cline : Print "Non hai nessun ";OGGETTO$;
  10077.     If _MUSICA=False
  10078.      Bell 1
  10079.     End If 
  10080.     Proc _ASPETTA
  10081.    End If 
  10082.   End If 
  10083.  Else 
  10084.   For A=0 To NUMEROO
  10085.    If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10086.     Proc OGGETTOOPERSONAGGIOSUCUIUSARE[A] : Exit 
  10087.    End If 
  10088.   Next A
  10089.  End If 
  10090. Else 
  10091.  Print At(0,ULTIMALINEA);"Non hai oggetti da usare";
  10092.  If _MUSICA=False
  10093.   Bell 1
  10094.  End If 
  10095.  Proc _ASPETTA
  10096. End If 
  10097. End Proc
  10098. Procedure USASUOGGETTO[O,Q]
  10099. COMPIUTAAZIONE=1
  10100. If TIPOCO(CATEGORIAO(O))=%100000
  10101.  Locate 0,ULTIMALINEA
  10102.  If Btst(1,TIPOO(O))=True
  10103.   Print "Non puoi ammaliare 1 ";
  10104.   If Btst(1,TIPOO(Q))=True
  10105.    Print NOMESRO$(CATEGORIAO(Q));
  10106.   Else 
  10107.    Print NOMESCO$(CATEGORIAO(Q));
  10108.   End If 
  10109.   Print " con 1 ";NOMESRO$(CATEGORIAO(O))
  10110.  Else 
  10111.   Print "Hai deciso di ammaliare 1 ";
  10112.   If Btst(1,TIPOO(Q))=True
  10113.    Print NOMESRO$(CATEGORIAO(Q));
  10114.   Else 
  10115.    Print NOMESCO$(CATEGORIAO(Q));
  10116.   End If 
  10117.   Print " con 1 ";
  10118.   If Btst(1,TIPOO(O))=True
  10119.    Print NOMESRO$(CATEGORIAO(O));
  10120.   Else 
  10121.    Print NOMESCO$(CATEGORIAO(O));
  10122.   End If 
  10123.   MAGIA=PARATIPOCO(CATEGORIAO(O))/$10000
  10124.   PARMAGIA=PARATIPOCO(CATEGORIAO(O)) mod $10000
  10125.   If MAGIA=0
  10126. 'Cambia la categoria dell'oggetto, cio� lo trasforma in un'altro oggetto 
  10127.    CATEGORIAO(Q)=PARMAGIA
  10128.   Else If MAGIA=1
  10129. 'Fa diventare l'oggetto il resto dell'oggetto e viceversa
  10130.    Bchg 1,TIPOO(Q)
  10131.   Else If MAGIA=2
  10132. 'Fa diventare l'oggetto il resto di un oggetto e crea un nuovo oggetto della 
  10133. ' categoria indicata dal parametro PARMAGIA
  10134.    Bclr 1,TIPOO(Q)
  10135.    Inc NUMEROO
  10136.    CATEGORIAO(NUMEROO)=PARMAGIA
  10137.    POSIZIONEO(NUMEROO)=POSIZIONEO(Q)
  10138.   End If 
  10139.  End If 
  10140. Else 
  10141.  Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di usare 1 ";
  10142.  If Btst(1,TIPOO(O))=True
  10143.   Print NOMESRO$(CATEGORIAO(O));
  10144.  Else 
  10145.   Print NOMESCO$(CATEGORIAO(O));
  10146.  End If 
  10147.  Print " su 1 ";
  10148.  If Btst(1,TIPOO(Q))=True
  10149.   Print NOMESRO$(CATEGORIAO(Q));
  10150.  Else 
  10151.   Print NOMESCO$(CATEGORIAO(Q));
  10152.  End If 
  10153. End If 
  10154. OGGETTOUSANTE=O
  10155. OGGETTOUSATO=Q
  10156. Proc _ASPETTA
  10157. End Proc
  10158. Procedure USASUOGGETTOP[O,P,Q]
  10159. If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
  10160.  Print NOMEP$(P);" sta usando 1 ";
  10161.  If Btst(1,TIPOO(O))=True
  10162.   Print NOMESRO$(CATEGORIAO(O));
  10163.  Else 
  10164.   Print NOMESCO$(CATEGORIAO(O));
  10165.  End If 
  10166.  Print " su 1 ";
  10167.  If Btst(1,TIPOO(Q))=True
  10168.   Print NOMESRO$(CATEGORIAO(Q))
  10169.  Else 
  10170.   Print NOMESCO$(CATEGORIAO(Q))
  10171.  End If 
  10172. End If 
  10173. End Proc
  10174. Procedure USASUPERSONAGGIO[O,P]
  10175. Locate 0,ULTIMALINEA : Cline 
  10176. If P=0
  10177.  If TIPOCO(CATEGORIAO(O))=%1
  10178.   If Btst(1,TIPOO(O))=True
  10179.    Print "Non puoi mangiarti 1"; : RESTO=True
  10180.    If _MUSICA=False
  10181.     Bell 1
  10182.    End If 
  10183.   Else 
  10184.    COMPIUTAAZIONE=1
  10185.    Print "Hai deciso di mangiarti 1";
  10186.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(O))
  10187.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10188.    Bset 1,TIPOO(O)
  10189.    Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(O))
  10190.    RESISTENZAP(0)=Min(RESISTENZAP(0),C0STITUZIONEP(0))
  10191.   End If 
  10192.  Else If TIPOCO(CATEGORIAO(O))=%100
  10193.   If Btst(1,TIPOO(O))=True
  10194.    Print "Non puoi difenderti con 1"; : RESTO=True
  10195.    If _MUSICA=False
  10196.     Bell 1
  10197.    End If 
  10198.   Else 
  10199.    COMPIUTAAZIONE=1
  10200.    Print "Hai deciso di difenderti con 1";
  10201.    Bset 2,TIPOO(O)
  10202.   End If 
  10203.  Else If TIPOCO(CATEGORIAO(O))=%1000
  10204.   If Btst(1,TIPOO(O))=True
  10205.    Print "Non puoi leggerti 1"; : RESTO=True
  10206.    If _MUSICA=False
  10207.     Bell 1
  10208.    End If 
  10209.   Else 
  10210.    COMPIUTAAZIONE=1
  10211.    Print "Hai deciso di leggerti 1"; : PERSONAGGIO0DEVELEGGERE=True
  10212.   End If 
  10213.  Else If TIPOCO(CATEGORIAO(O))=%10001
  10214.   If Btst(1,TIPOO(O))=True
  10215.    Print "Non puoi berti 1"; : RESTO=True
  10216.    If _MUSICA=False
  10217.     Bell 1
  10218.    End If 
  10219.   Else 
  10220.    COMPIUTAAZIONE=1
  10221.    Print "Hai deciso di berti 1";
  10222.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(O))
  10223.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10224.    Bset 1,TIPOO(O)
  10225.    Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(O))
  10226.    RESISTENZAP(0)=Min(RESISTENZAP(0),C0STITUZIONEP(0))
  10227.   End If 
  10228.  Else If TIPOCO(CATEGORIAO(O))=%100000
  10229.   If Btst(1,TIPOO(O))=True
  10230.    Print "Non puoi ammaliarti con 1"; : RESTO=True
  10231.    If _MUSICA=False
  10232.     Bell 1
  10233.    End If 
  10234.   Else 
  10235.    COMPIUTAAZIONE=1
  10236.    Print "Hai deciso di ammaliarti con 1";
  10237.   End If 
  10238.  Else If TIPOCO(CATEGORIAO(O))=%1000000
  10239.   If Btst(1,TIPOO(O))=True
  10240.    Print "Non puoi colpirti con 1"; : RESTO=True
  10241.    If _MUSICA=False
  10242.     Bell 1
  10243.    End If 
  10244.   Else 
  10245.    COMPIUTAAZIONE=1
  10246.    Print "Hai deciso di colpirti con 1";
  10247.    RESISTENZA=RESISTENZAP(0)
  10248.    Add RESISTENZAP(0),-PARATIPOCO(CATEGORIAO(O))
  10249.    For A=0 To NUMEROO
  10250.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10251.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10252.       Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(A))
  10253.      End If 
  10254.     End If 
  10255.    Next A
  10256.    Proc LIMITI[RESISTENZAP(0),0,RESISTENZA] : RESISTENZAP(0)=Param
  10257.   End If 
  10258.  Else If TIPOCO(CATEGORIAO(O))=%101000000
  10259.   If Btst(1,TIPOO(O))=True
  10260.    Print "Non puoi colpirti con 1"; : RESTO=True
  10261.    If _MUSICA=False
  10262.     Bell 1
  10263.    End If 
  10264.   Else 
  10265.    COMPIUTAAZIONE=1
  10266.    Print "Hai deciso di colpirti con 1";
  10267.    RESISTENZA=RESISTENZAP(0)
  10268.    Add RESISTENZAP(0),-PARATIPOCO(CATEGORIAO(O))
  10269.    For A=0 To NUMEROO
  10270.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10271.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10272.       Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(A))
  10273.      End If 
  10274.     End If 
  10275.    Next A
  10276.    Proc LIMITI[RESISTENZAP(0),0,RESISTENZA] : RESISTENZAP(0)=Param
  10277.   End If 
  10278.  Else If TIPOCO(CATEGORIAO(O))=%10001000000
  10279.   If Btst(1,TIPOO(O))=True
  10280.    Print "Non puoi colpirti con 1"; : RESTO=True
  10281.    If _MUSICA=False
  10282.     Bell 1
  10283.    End If 
  10284.   Else 
  10285.    For A=0 To NUMEROO
  10286.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  10287.      OGGETTIVINCOLANTIPOSSEDUTI=True
  10288.     End If 
  10289.    Next A
  10290.    If OGGETTIVINCOLANTIPOSSEDUTI=True
  10291.     COMPIUTAAZIONE=1
  10292.     Print "Hai deciso di colpirti con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  10293.     RESISTENZA=RESISTENZAP(0)
  10294.     For A=0 To NUMEROO
  10295.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  10296.       V=A
  10297.      End If 
  10298.     Next A
  10299.     Add RESISTENZAP(0),-PARATIPOCO(CATEGORIAO(V))*25
  10300.     For A=0 To NUMEROO
  10301.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10302.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10303.        Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(A))
  10304.       End If 
  10305.      End If 
  10306.     Next A
  10307.     Proc LIMITI[RESISTENZAP(0),0,RESISTENZA] : RESISTENZAP(0)=Param
  10308.    Else 
  10309.     Print "Non hai 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" da usare con 1";
  10310.     If _MUSICA=False
  10311.      Bell 1
  10312.     End If 
  10313.    End If 
  10314.   End If 
  10315.  End If 
  10316. Else 
  10317.  If TIPOCO(CATEGORIAO(O))=%1
  10318.   If Btst(1,TIPOO(O))=True
  10319.    Print "Non puoi far mangiare a ";NOMEP$(P);" 1"; : RESTO=True
  10320.    If _MUSICA=False
  10321.     Bell 1
  10322.    End If 
  10323.   Else 
  10324.    COMPIUTAAZIONE=1
  10325.    Print "Hai deciso di far mangiare a ";NOMEP$(P);" 1";
  10326.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10327.    Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  10328.    POSIZIONEO(O)=-1-P : Bset 0,TIPOO(O)
  10329.    Add PESONETTOP(P),PESOCO(CATEGORIAO(O))
  10330.    Inc OGGETTIDATIOLASCIATI(CATEGORIAO(O))
  10331.    Bset 1,TIPOO(O)
  10332.    Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(O))
  10333.    RESISTENZAP(P)=Min(RESISTENZAP(P),C0STITUZIONEP(P))
  10334.   End If 
  10335.  Else If TIPOCO(CATEGORIAO(O))=%100
  10336.   If Btst(1,TIPOO(O))=True
  10337.    Print "Non puoi difendere ";NOMEP$(P);" con 1"; : RESTO=True
  10338.    If _MUSICA=False
  10339.     Bell 1
  10340.    End If 
  10341.   Else 
  10342.    COMPIUTAAZIONE=1
  10343.    Print "Hai deciso di difendere ";NOMEP$(P);" con 1";
  10344.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10345.    Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  10346.    POSIZIONEO(O)=-1-P : Bset 0,TIPOO(O)
  10347.    Add PESONETTOP(P),PESOCO(CATEGORIAO(O))
  10348.    Inc OGGETTIDATIOLASCIATI(CATEGORIAO(O))
  10349.    Bset 2,TIPOO(O)
  10350.   End If 
  10351.  Else If TIPOCO(CATEGORIAO(O))=%1000
  10352.   If Btst(1,TIPOO(O))=True
  10353.    Print "Non puoi far leggere a ";NOMEP$(P);" 1"; : RESTO=True
  10354.    If _MUSICA=False
  10355.     Bell 1
  10356.    End If 
  10357.   Else 
  10358.    COMPIUTAAZIONE=1
  10359.    Print "Hai deciso di far leggere a ";NOMEP$(P);" 1";
  10360.   End If 
  10361.  Else If TIPOCO(CATEGORIAO(O))=%10001
  10362.   If Btst(1,TIPOO(O))=True
  10363.    Print "Non puoi far bere a ";NOMEP$(P);" 1"; : RESTO=True
  10364.    If _MUSICA=False
  10365.     Bell 1
  10366.    End If 
  10367.   Else 
  10368.    COMPIUTAAZIONE=1
  10369.    Print "Hai deciso di far bere a ";NOMEP$(P);" 1";
  10370.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10371.    Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  10372.    POSIZIONEO(O)=-1-P : Bset 0,TIPOO(O)
  10373.    Add PESONETTOP(P),PESOCO(CATEGORIAO(O))
  10374.    Inc OGGETTIDATIOLASCIATI(CATEGORIAO(O))
  10375.    Bset 1,TIPOO(O)
  10376.    Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(O))
  10377.    RESISTENZAP(P)=Min(RESISTENZAP(P),C0STITUZIONEP(P))
  10378.   End If 
  10379.  Else If TIPOCO(CATEGORIAO(O))=%100000
  10380.   If Btst(1,TIPOO(O))=True
  10381.    Print "Non puoi ammaliare ";NOMEP$(P);" con 1"; : RESTO=True
  10382.    If _MUSICA=False
  10383.     Bell 1
  10384.    End If 
  10385.   Else 
  10386.    COMPIUTAAZIONE=1
  10387.    Print "Hai deciso di ammaliare ";NOMEP$(P);" con 1";
  10388.   End If 
  10389.  Else If TIPOCO(CATEGORIAO(O))=%1000000
  10390.   If Btst(1,TIPOO(O))=True
  10391.    Print "Non puoi colpire ";NOMEP$(P);" con 1"; : RESTO=True
  10392.    If _MUSICA=False
  10393.     Bell 1
  10394.    End If 
  10395.   Else 
  10396.    COMPIUTAAZIONE=1
  10397.    Print "Hai deciso di colpire ";NOMEP$(P);" con 1";
  10398.    RESISTENZA=RESISTENZAP(P)
  10399.    Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  10400.    For A=0 To NUMEROO
  10401.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10402.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10403.       Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10404.      End If 
  10405.     End If 
  10406.    Next A
  10407.    Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10408.   End If 
  10409.  Else If TIPOCO(CATEGORIAO(O))=%101000000
  10410.   If Btst(1,TIPOO(O))=True
  10411.    Print "Non puoi colpire ";NOMEP$(P);" con 1"; : RESTO=True
  10412.    If _MUSICA=False
  10413.     Bell 1
  10414.    End If 
  10415.   Else 
  10416.    COMPIUTAAZIONE=1
  10417.    Print "Hai deciso di colpire ";NOMEP$(P);" con 1";
  10418.    RESISTENZA=RESISTENZAP(P)
  10419.    Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  10420.    For A=0 To NUMEROO
  10421.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10422.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10423.       Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10424.      End If 
  10425.     End If 
  10426.    Next A
  10427.    Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10428.   End If 
  10429.  Else If TIPOCO(CATEGORIAO(O))=%10001000000
  10430.   If Btst(1,TIPOO(O))=True
  10431.    Print "Non puoi colpire ";NOMEP$(P);" con 1"; : RESTO=True
  10432.    If _MUSICA=False
  10433.     Bell 1
  10434.    End If 
  10435.   Else 
  10436.    For A=0 To NUMEROO
  10437.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  10438.      OGGETTIVINCOLANTIPOSSEDUTI=True
  10439.     End If 
  10440.    Next A
  10441.    If OGGETTIVINCOLANTIPOSSEDUTI=True
  10442.     COMPIUTAAZIONE=1
  10443.     Print "Hai deciso di colpire ";NOMEP$(P);" con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  10444.     RESISTENZA=RESISTENZAP(0)
  10445.     For A=0 To NUMEROO
  10446.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  10447.       V=A
  10448.      End If 
  10449.     Next A
  10450.     Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(V))*25
  10451.     If Btst(8,TIPOCO(CATEGORIAO(V)))=True
  10452.      POSIZIONEO(V)= Not P : Bset 0,TIPOO(V)
  10453.      Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(V))
  10454.      Add PESONETTOP(P),PESOCO(CATEGORIAO(V))
  10455.      Inc OGGETTIDATIOLASCIATI(CATEGORIAO(V))
  10456.     End If 
  10457.     For A=0 To NUMEROO
  10458.      If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10459.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10460.        Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10461.       End If 
  10462.      End If 
  10463.     Next A
  10464.     Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10465.    Else 
  10466.     Print "Non hai 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" da usare con 1";
  10467.     If _MUSICA=False
  10468.      Bell 1
  10469.     End If 
  10470.    End If 
  10471.   End If 
  10472.  End If 
  10473. End If 
  10474. Print " ";
  10475. If RESTO=True
  10476.  Print NOMESRO$(CATEGORIAO(O));
  10477. Else 
  10478.  Print NOMESCO$(CATEGORIAO(O));
  10479. End If 
  10480. OGGETTOUSANTE=O
  10481. PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO=P
  10482. If P>0 and RESISTENZAP(P)=0 Then Proc MORTE[P]
  10483. Proc _ASPETTA
  10484. If PERSONAGGIO0DEVELEGGERE=True
  10485.  Proc MOSTRAMESSAGGIO["Lettura di 1 "+NOMESCO$(CATEGORIAO(O)),TESTOO$(TESTOO(O))]
  10486.  PERSONAGGIO0DEVELEGGERE=False
  10487. End If 
  10488. End Proc
  10489. Procedure USASUPERSONAGGIOP[O,P,Q]
  10490. If P=Q Then Pop Proc
  10491. If Btst(1,TIPOO(O))=False
  10492.  If Btst(2,TIPOP(0))=False
  10493.   PERSONAGGIO0SVEGLIO=True
  10494.  End If 
  10495.  If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  10496.   PERSONAGGIOVISIBILE=True
  10497.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  10498.   PERSONAGGIOVISIBILE=True
  10499.  Else If POSIZIONEP(P)=-1-Q and Btst(0,TIPOP(P))=True
  10500.   If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  10501.    PERSONAGGIOVISIBILE=True
  10502.   Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  10503.    PERSONAGGIOVISIBILE=True
  10504.   End If 
  10505.  End If 
  10506.  If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10507.   Print NOMEP$(P);" ";
  10508.  End If 
  10509.  If TIPOCO(CATEGORIAO(O))=%1
  10510.   If Q>0
  10511.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10512.     Print "sta facendo mangiare a ";NOMEP$(Q);" 1";
  10513.    End If 
  10514.   Else 
  10515.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10516.     Print "ti sta facendo mangiare 1";
  10517.    End If 
  10518.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(O))
  10519.   End If 
  10520.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(O))
  10521.   POSIZIONEO(O)=-1-Q : Bset 0,TIPOO(O)
  10522.   Add PESONETTOP(Q),PESOCO(CATEGORIAO(O))
  10523.   Bset 1,TIPOO(O)
  10524.   Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(O))
  10525.   RESISTENZAP(Q)=Min(RESISTENZAP(Q),C0STITUZIONEP(Q))
  10526.  Else If TIPOCO(CATEGORIAO(O))=%100
  10527.   If Q>0
  10528.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10529.     Print "sta difendendo ";NOMEP$(Q);" con 1";
  10530.    End If 
  10531.   Else 
  10532.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10533.     Print "ti sta difendendo con 1";
  10534.    End If 
  10535.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10536.   End If 
  10537.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(O))
  10538.   POSIZIONEO(O)=-1-Q : Bset 0,TIPOO(O)
  10539.   Add PESONETTOP(Q),PESOCO(CATEGORIAO(O))
  10540.   Bset 2,TIPOO(O)
  10541.  Else If TIPOCO(CATEGORIAO(O))=%1000
  10542.   If Q>0
  10543.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10544.     Print "sta facendo leggere a ";NOMEP$(Q);" 1";
  10545.    End If 
  10546.   Else 
  10547.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10548.     Print "ti sta facendo leggere 1"; : PERSONAGGIO0DEVELEGGERE=True
  10549.    End If 
  10550.   End If 
  10551.  Else If TIPOCO(CATEGORIAO(O))=%10001
  10552.   If Q>0
  10553.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10554.     Print "sta facendo bere a ";NOMEP$(Q);" 1";
  10555.    End If 
  10556.   Else 
  10557.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10558.     Print "ti sta facendo bere 1";
  10559.    End If 
  10560.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(O))
  10561.   End If 
  10562.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(O))
  10563.   POSIZIONEO(O)=-1-Q : Bset 0,TIPOO(O)
  10564.   Add PESONETTOP(Q),PESOCO(CATEGORIAO(O))
  10565.   Bset 1,TIPOO(O)
  10566.   Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(O))
  10567.   RESISTENZAP(Q)=Min(RESISTENZAP(Q),C0STITUZIONEP(Q))
  10568.  Else If TIPOCO(CATEGORIAO(O))=%100000
  10569.   If Q>0
  10570.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10571.     Print "sta ammaliando ";NOMEP$(Q);" con 1";
  10572.    End If 
  10573.   Else 
  10574.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10575.     Print "ti sta ammaliando con 1";
  10576.    End If 
  10577.   End If 
  10578.  Else If TIPOCO(CATEGORIAO(O))=%1000000
  10579.   If Q>0
  10580.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10581.     Print "sta colpendo ";NOMEP$(Q);" con 1";
  10582.    End If 
  10583.   Else 
  10584.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10585.     Print "ti sta colpendo con 1";
  10586.    End If 
  10587.   End If 
  10588.   RESISTENZA=RESISTENZAP(Q)
  10589.   Add RESISTENZAP(Q),-PARATIPOCO(CATEGORIAO(O))
  10590.   For A=0 To NUMEROO
  10591.    If POSIZIONEO(A)=-1-Q and Btst(0,TIPOO(A))=True
  10592.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10593.      Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(A))
  10594.     End If 
  10595.    End If 
  10596.   Next A
  10597.   Proc LIMITI[RESISTENZAP(Q),0,RESISTENZA] : RESISTENZAP(Q)=Param
  10598.  Else If TIPOCO(CATEGORIAO(O))=%101000000
  10599.   If Q>0
  10600.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10601.     Print "sta colpendo ";NOMEP$(Q);" con 1";
  10602.    End If 
  10603.   Else 
  10604.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10605.     Print "ti sta colpendo con 1";
  10606.    End If 
  10607.   End If 
  10608.   RESISTENZA=RESISTENZAP(Q)
  10609.   Add RESISTENZAP(Q),-PARATIPOCO(CATEGORIAO(O))
  10610.   For A=0 To NUMEROO
  10611.    If POSIZIONEO(A)=-1-Q and Btst(0,TIPOO(A))=True
  10612.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10613.      Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(A))
  10614.     End If 
  10615.    End If 
  10616.   Next A
  10617.   Proc LIMITI[RESISTENZAP(Q),0,RESISTENZA] : RESISTENZAP(Q)=Param
  10618.  Else If TIPOCO(CATEGORIAO(O))=%10001000000
  10619.   For A=0 To NUMEROO
  10620.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  10621.     OGGETTIVINCOLANTIPOSSEDUTI=True
  10622.    End If 
  10623.   Next A
  10624.   If OGGETTIVINCOLANTIPOSSEDUTI=True
  10625.    If Q>0
  10626.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10627.      Print "sta colpendo ";NOMEP$(Q);" con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  10628.     End If 
  10629.    Else 
  10630.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10631.      Print "ti sta colpendo con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  10632.     End If 
  10633.    End If 
  10634.    RESISTENZA=RESISTENZAP(Q)
  10635.    For A=0 To NUMEROO
  10636.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  10637.      V=A
  10638.     End If 
  10639.    Next A
  10640.    Add RESISTENZAP(Q),-PARATIPOCO(CATEGORIAO(V))*25
  10641.    If Btst(8,TIPOCO(CATEGORIAO(V)))=True
  10642.     If Q=0
  10643.      Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(V))
  10644.     End If 
  10645.     POSIZIONEO(V)=-1-Q : Bset 0,TIPOO(V)
  10646.     Add PESONETTOP(Q),PESOCO(CATEGORIAO(V))
  10647.    End If 
  10648.    For A=0 To NUMEROO
  10649.     If POSIZIONEO(A)=-1-Q and Btst(0,TIPOO(A))=True
  10650.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10651.       Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(A))
  10652.      End If 
  10653.     End If 
  10654.    Next A
  10655.    Proc LIMITI[RESISTENZAP(Q),0,RESISTENZA] : RESISTENZAP(Q)=Param
  10656.   End If 
  10657.  End If 
  10658.  If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10659.   Print " ";NOMESCO$(CATEGORIAO(O))
  10660.  End If 
  10661.  If Q>0 and RESISTENZAP(Q)=0
  10662.   If PERSONAGGIOVISIBILE=True
  10663.    Proc MORTE[Q]
  10664.   End If 
  10665.  End If 
  10666.  If PERSONAGGIO0DEVELEGGERE=True
  10667.   Proc MOSTRAMESSAGGIO["Lettura di 1 "+NOMESCO$(CATEGORIAO(O)),TESTOO$(TESTOO(O))]
  10668.   PERSONAGGIO0DEVELEGGERE=False
  10669.  End If 
  10670. End If 
  10671. End Proc
  10672. Procedure USASUUNOGGETTO[O]
  10673. For A=0 To NUMEROCO
  10674.  If OGGETTINELLUOGO(A)>0
  10675.   Inc CATEGORIEOGGETTI
  10676.  End If 
  10677.  If RESTINELLUOGO(A)>0
  10678.   Inc CATEGORIEOGGETTI
  10679.  End If 
  10680. Next A
  10681. If CATEGORIEOGGETTI>0
  10682.  If CATEGORIEOGGETTI>1
  10683.   Locate 0,ULTIMALINEA : Input "Su quale oggetto vuoi usare ?>";OGGETTO$;
  10684.   Curs Off 
  10685.   If OGGETTO$<>""
  10686.    For A=0 To NUMEROO
  10687.     If POSIZIONEO(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(3,TIPOO(A))=False
  10688.      If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A)))
  10689.       Proc USASUOGGETTO[O,A] : Exit 
  10690.      Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A)))
  10691.       Proc USASUOGGETTO[O,A] : Exit 
  10692.      End If 
  10693.     End If 
  10694.    Next A
  10695.    If A=NUMEROO+1
  10696.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";OGGETTO$;
  10697.     If _MUSICA=False
  10698.      Bell 1
  10699.     End If 
  10700.     Proc _ASPETTA
  10701.    End If 
  10702.   End If 
  10703.  Else 
  10704.   For A=0 To NUMEROO
  10705.    If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False
  10706.     Proc USASUOGGETTO[O,A] : Exit 
  10707.    End If 
  10708.   Next A
  10709.  End If 
  10710. End If 
  10711. End Proc
  10712. Procedure USASUUNPERSONAGGIO[O]
  10713. For A=0 To NUMEROP
  10714.  If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  10715.   Inc PERSONAGGI
  10716.  Else If LUOGODIDESTINAZIONEP(A)=POSIZIONEP(0) and CAMMINOP(A)-TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(A)=DREZIONEPRESAP(0)
  10717.   Inc PERSONAGGI
  10718.  End If 
  10719. Next A
  10720. If PERSONAGGI>1
  10721.  Locate 0,ULTIMALINEA : Input "Su quale personaggio vuoi usare ?>";PERSONAGGIO$;
  10722.  Curs Off 
  10723.  If PERSONAGGIO$<>""
  10724.   PERSONAGGIO$=Lower$(PERSONAGGIO$)
  10725.   If PERSONAGGIO$="me"
  10726.    USASUPERSONAGGIO[O,0]
  10727.   Else 
  10728.    For A=1 To NUMEROP
  10729.     If PERSONAGGIO$=Lower$(NOMEP$(A))
  10730.      If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  10731.       USASUPERSONAGGIO[O,A] : Exit 
  10732.      Else If LUOGODIDESTINAZIONEP(A)=POSIZIONEP(0) and CAMMINOP(A)-TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(A)=DREZIONEPRESAP(0)
  10733.       USASUPERSONAGGIO[O,A] : Exit 
  10734.      End If 
  10735.     End If 
  10736.    Next A
  10737.    If A=NUMEROP+1
  10738.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  10739.     If _MUSICA=False
  10740.      Bell 1
  10741.     End If 
  10742.     Proc _ASPETTA
  10743.    End If 
  10744.   End If 
  10745.  End If 
  10746. Else 
  10747.  USASUPERSONAGGIO[O,0]
  10748. End If 
  10749. End Proc
  10750. Procedure USATI[O,P]
  10751. If Btst(1,TIPOO(O))=False
  10752.  If Btst(2,TIPOP(0))=False
  10753.   If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  10754.    PERSONAGGIOVISIBILE=True
  10755.   Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  10756.    PERSONAGGIOVISIBILE=True
  10757.   Else If POSIZIONEP(P)=-1 and Btst(0,TIPOP(P))=True
  10758.    PERSONAGGIOVISIBILE=True
  10759.   End If 
  10760.  End If 
  10761.  If PERSONAGGIOVISIBILE=True
  10762.   Print NOMEP$(P);" ";
  10763.  End If 
  10764.  If TIPOCO(CATEGORIAO(O))=%1
  10765.   If PERSONAGGIOVISIBILE=True
  10766.    Print "si sta mangiando 1";
  10767.   End If 
  10768.   Bset 1,TIPOO(O)
  10769.   If RESISTENZAP(P)<C0STITUZIONEP(P)
  10770.    Inc RESISTENZAP(P)
  10771.   End If 
  10772.  Else If TIPOCO(CATEGORIAO(O))=%100
  10773.   If PERSONAGGIOVISIBILE=True
  10774.    Print "si sta difendendo con 1";
  10775.   End If 
  10776.   Bset 2,TIPOO(O)
  10777.  Else If TIPOCO(CATEGORIAO(O))=%1000
  10778.   If PERSONAGGIOVISIBILE=True
  10779.    Print "si sta leggendo 1";
  10780.   End If 
  10781.  Else If TIPOCO(CATEGORIAO(O))=%10001
  10782.   If PERSONAGGIOVISIBILE=True
  10783.    Print "si sta bevendo 1";
  10784.   End If 
  10785.   Bset 1,TIPOO(O)
  10786.   If RESISTENZAP(P)<C0STITUZIONEP(P)
  10787.    Inc RESISTENZAP(P)
  10788.   End If 
  10789.  Else If TIPOCO(CATEGORIAO(O))=%100000
  10790.   If PERSONAGGIOVISIBILE=True
  10791.    Print "si sta ammaliando con 1";
  10792.   End If 
  10793.  Else If TIPOCO(CATEGORIAO(O))=%1000000
  10794.   If PERSONAGGIOVISIBILE=True
  10795.    Print "si colpisce con 1";
  10796.   End If 
  10797.   RESISTENZA=RESISTENZAP(P)
  10798.   Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  10799.   For A=0 To NUMEROO
  10800.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10801.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=False
  10802.      Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10803.     End If 
  10804.    End If 
  10805.   Next A
  10806.   Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10807.  Else If TIPOCO(CATEGORIAO(O))=%101000000
  10808.   If PERSONAGGIOVISIBILE=True
  10809.    Print "si colpisce con 1";
  10810.   End If 
  10811.   RESISTENZA=RESISTENZAP(P)
  10812.   Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  10813.   For A=0 To NUMEROO
  10814.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10815.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10816.      Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10817.     End If 
  10818.    End If 
  10819.   Next A
  10820.   Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10821.  Else If TIPOCO(CATEGORIAO(O))=%10001000000
  10822.   For A=0 To NUMEROO
  10823.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  10824.     OGGETTIVINCOLANTIPOSSEDUTI=True
  10825.    End If 
  10826.   Next A
  10827.   If OGGETTIVINCOLANTIPOSSEDUTI=True
  10828.    If PERSONAGGIOVISIBILE=True
  10829.     Print "si colpisce con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  10830.    End If 
  10831.    RESISTENZA=RESISTENZAP(0)
  10832.    For A=0 To NUMEROO
  10833.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  10834.      V=A
  10835.     End If 
  10836.    Next A
  10837.    Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(V))*25
  10838.    For A=0 To NUMEROO
  10839.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10840.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10841.       Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10842.      End If 
  10843.     End If 
  10844.    Next A
  10845.    Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10846.   End If 
  10847.  End If 
  10848.  If PERSONAGGIOVISIBILE=True
  10849.   Print " ";NOMESCO$(CATEGORIAO(O))
  10850.  End If 
  10851.  If P>0 and RESISTENZAP(P)=0
  10852.   If PERSONAGGIOVISIBILE=True
  10853.    Proc MORTE[P]
  10854.   End If 
  10855.  End If 
  10856. End If 
  10857. End Proc
  10858. Procedure USATIUNO[AZIONE,P]
  10859. NUMEROOGGETTIDELPERSONAGGIOP=-1
  10860. For A=0 To NUMEROO
  10861.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10862.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  10863.   B=A
  10864.  End If 
  10865. Next A
  10866. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  10867.  Pop Proc
  10868. End If 
  10869. If NUMEROOGGETTIDELPERSONAGGIOP=0
  10870.  A=B
  10871. Else 
  10872.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  10873.  B=0
  10874.  For A=0 To NUMEROO
  10875.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10876.    OGGETTODELPERSONAGGIOP(B)=A
  10877.    Inc B
  10878.   End If 
  10879.  Next A
  10880.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  10881. End If 
  10882. Proc USATI[A,P]
  10883. End Proc
  10884. Procedure USATIUNOA[AZIONE,P]
  10885. NUMEROOGGETTIDELPERSONAGGIOP=-1
  10886. For A=0 To NUMEROO
  10887.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  10888.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  10889.   B=A
  10890.  End If 
  10891. Next A
  10892. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  10893.  Pop Proc
  10894. End If 
  10895. If NUMEROOGGETTIDELPERSONAGGIOP=0
  10896.  A=B
  10897. Else 
  10898.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  10899.  B=0
  10900.  For A=0 To NUMEROO
  10901.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  10902.    OGGETTODELPERSONAGGIOP(B)=A
  10903.    Inc B
  10904.   End If 
  10905.  Next A
  10906.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  10907. End If 
  10908. Proc USATI[A,P]
  10909. End Proc
  10910. Procedure USATIUNOTA[AZIONE,P]
  10911. NUMEROOGGETTIDELPERSONAGGIOP=-1
  10912. For A=0 To NUMEROO
  10913.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARAAAZIONEP(AZIONE,P)
  10914.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  10915.   B=A
  10916.  End If 
  10917. Next A
  10918. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  10919.  Pop Proc
  10920. End If 
  10921. If NUMEROOGGETTIDELPERSONAGGIOP=0
  10922.  A=B
  10923. Else 
  10924.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  10925.  B=0
  10926.  For A=0 To NUMEROO
  10927.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARAAAZIONEP(AZIONE,P)
  10928.    OGGETTODELPERSONAGGIOP(B)=A
  10929.    Inc B
  10930.   End If 
  10931.  Next A
  10932.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  10933. End If 
  10934. Proc USATI[A,P]
  10935. End Proc
  10936. Procedure USAUNOSUAO[AZIONE,P]
  10937. NUMEROOGGETTIDELPERSONAGGIOP=-1
  10938. For A=0 To NUMEROO
  10939.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10940.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  10941.   B=A
  10942.  End If 
  10943. Next A
  10944. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  10945.  Pop Proc
  10946. End If 
  10947. If NUMEROOGGETTIDELPERSONAGGIOP=0
  10948.  A=B
  10949. Else 
  10950.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  10951.  B=0
  10952.  For A=0 To NUMEROO
  10953.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10954.    OGGETTODELPERSONAGGIOP(B)=A
  10955.    Inc B
  10956.   End If 
  10957.  Next A
  10958.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  10959. End If 
  10960. For B=0 To NUMEROO
  10961.  If POSIZIONEO(B)=POSIZIONEP(P)
  10962.   USASUOGGETTOP[A,P,B]
  10963.   Dec PARAAAZIONEP(AZIONE,P)
  10964.   If PARAAAZIONEP(AZIONE,P)=0
  10965.    FINEA(AZIONE,P)=True
  10966.   End If 
  10967.   Exit 
  10968.  End If 
  10969. Next B
  10970. End Proc
  10971. Procedure USAUNOSUAOB[AZIONE,P]
  10972. NUMEROOGGETTIDELPERSONAGGIOP=-1
  10973. For A=0 To NUMEROO
  10974.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARABAZIONEP(AZIONE,P)
  10975.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  10976.   B=A
  10977.  End If 
  10978. Next A
  10979. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  10980.  Pop Proc
  10981. End If 
  10982. If NUMEROOGGETTIDELPERSONAGGIOP=0
  10983.  A=B
  10984. Else 
  10985.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  10986.  B=0
  10987.  For A=0 To NUMEROO
  10988.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARABAZIONEP(AZIONE,P)
  10989.    OGGETTODELPERSONAGGIOP(B)=A
  10990.    Inc B
  10991.   End If 
  10992.  Next A
  10993.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  10994. End If 
  10995. For B=0 To NUMEROO
  10996.  If POSIZIONEO(B)=POSIZIONEP(P) and CATEGORIAO(B)=PARABAZIONEP(AZIONE,P)
  10997.   USASUOGGETTOP[A,P,B]
  10998.   Dec PARAAAZIONEP(AZIONE,P)
  10999.   If PARAAAZIONEP(AZIONE,P)=0
  11000.    FINEA(AZIONE,P)=True
  11001.   End If 
  11002.   Exit 
  11003.  End If 
  11004. Next B
  11005. End Proc
  11006. Procedure USAUNOSUAOTB[AZIONE,P]
  11007. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11008. For A=0 To NUMEROO
  11009.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(B))=PARABAZIONEP(AZIONE,P)
  11010.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11011.   B=A
  11012.  End If 
  11013. Next A
  11014. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11015.  Pop Proc
  11016. End If 
  11017. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11018.  A=B
  11019. Else 
  11020.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11021.  B=0
  11022.  For A=0 To NUMEROO
  11023.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(B))=PARABAZIONEP(AZIONE,P)
  11024.    OGGETTODELPERSONAGGIOP(B)=A
  11025.    Inc B
  11026.   End If 
  11027.  Next A
  11028.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11029. End If 
  11030. For B=0 To NUMEROO
  11031.  If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARABAZIONEP(AZIONE,P)
  11032.   USASUOGGETTOP[A,P,B]
  11033.   Dec PARAAAZIONEP(AZIONE,P)
  11034.   If PARAAAZIONEP(AZIONE,P)=0
  11035.    FINEA(AZIONE,P)=True
  11036.   End If 
  11037.   Exit 
  11038.  End If 
  11039. Next B
  11040. End Proc
  11041. Procedure USAUNOSUAP[AZIONE,P]
  11042. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  11043. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11044.  PERSONAGGIOTROVATO=A
  11045. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11046.  PERSONAGGIOTROVATO=A
  11047. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11048.  PERSONAGGIOTROVATO=A
  11049. End If 
  11050. If PERSONAGGIOTROVATO>-1
  11051.  For A=0 To NUMEROO
  11052.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11053.    USASUPERSONAGGIOP[A,P,PERSONAGGIOTROVATO]
  11054.    Dec PARAAAZIONEP(AZIONE,P)
  11055.    If PARAAAZIONEP(AZIONE,P)=0
  11056.     FINEA(AZIONE,P)=True
  11057.    End If 
  11058.    Exit 
  11059.   End If 
  11060.  Next A
  11061. End If 
  11062. End Proc
  11063. Procedure USAUNOSUPA[AZIONE,P]
  11064. A=PARAAAZIONEP(AZIONE,P)
  11065. For B=0 To NUMEROO
  11066.  If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True
  11067.   If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11068.    Proc USASUPERSONAGGIOP[B,P,A]
  11069.    Exit 
  11070.   Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11071.    Proc USASUPERSONAGGIOP[B,P,A]
  11072.    Exit 
  11073.   Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11074.    Proc USASUPERSONAGGIOP[B,P,A]
  11075.    Exit 
  11076.   End If 
  11077.  End If 
  11078. Next B
  11079. End Proc
  11080. Procedure USAUNOASUBO[AZIONE,P]
  11081. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11082. For A=0 To NUMEROO
  11083.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11084.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11085.   B=A
  11086.  End If 
  11087. Next A
  11088. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11089.  Pop Proc
  11090. End If 
  11091. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11092.  A=B
  11093. Else 
  11094.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11095.  B=0
  11096.  For A=0 To NUMEROO
  11097.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11098.    OGGETTODELPERSONAGGIOP(B)=A
  11099.    Inc B
  11100.   End If 
  11101.  Next A
  11102.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11103. End If 
  11104. For B=0 To NUMEROO
  11105.  If POSIZIONEO(B)=POSIZIONEP(P)
  11106.   USASUOGGETTOP[A,P,B]
  11107.   Dec PARABAZIONEP(AZIONE,P)
  11108.   If PARABAZIONEP(AZIONE,P)=0
  11109.    FINEA(AZIONE,P)=True
  11110.   End If 
  11111.   Exit 
  11112.  End If 
  11113. Next B
  11114. End Proc
  11115. Procedure USAUNOASUBOC[AZIONE,P]
  11116. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11117. For A=0 To NUMEROO
  11118.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11119.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11120.   B=A
  11121.  End If 
  11122. Next A
  11123. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11124.  Pop Proc
  11125. End If 
  11126. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11127.  A=B
  11128. Else 
  11129.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11130.  B=0
  11131.  For A=0 To NUMEROO
  11132.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11133.    OGGETTODELPERSONAGGIOP(B)=A
  11134.    Inc B
  11135.   End If 
  11136.  Next A
  11137.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11138. End If 
  11139. For B=0 To NUMEROO
  11140.  If POSIZIONEO(B)=POSIZIONEP(P) and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11141.   USASUOGGETTOP[A,P,B]
  11142.   Dec PARABAZIONEP(AZIONE,P)
  11143.   If PARABAZIONEP(AZIONE,P)=0
  11144.    FINEA(AZIONE,P)=True
  11145.   End If 
  11146.   Exit 
  11147.  End If 
  11148. Next B
  11149. End Proc
  11150. Procedure USAUNOASUBOTC[AZIONE,P]
  11151. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11152. For A=0 To NUMEROO
  11153.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11154.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11155.   B=A
  11156.  End If 
  11157. Next A
  11158. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11159.  Pop Proc
  11160. End If 
  11161. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11162.  A=B
  11163. Else 
  11164.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11165.  B=0
  11166.  For A=0 To NUMEROO
  11167.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11168.    OGGETTODELPERSONAGGIOP(B)=A
  11169.    Inc B
  11170.   End If 
  11171.  Next A
  11172.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11173. End If 
  11174. For B=0 To NUMEROO
  11175.  If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARACAZIONEP(AZIONE,P)
  11176.   USASUOGGETTOP[A,P,B]
  11177.   Dec PARABAZIONEP(AZIONE,P)
  11178.   If PARABAZIONEP(AZIONE,P)=0
  11179.    FINEA(AZIONE,P)=True
  11180.   End If 
  11181.   Exit 
  11182.  End If 
  11183. Next B
  11184. End Proc
  11185. Procedure USAUNOASUBP[AZIONE,P]
  11186. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  11187. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11188.  PERSONAGGIOTROVATO=A
  11189. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11190.  PERSONAGGIOTROVATO=A
  11191. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11192.  PERSONAGGIOTROVATO=A
  11193. End If 
  11194. If PERSONAGGIOTROVATO>-1
  11195.  For A=0 To NUMEROO
  11196.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11197.    USASUPERSONAGGIOP[A,P,B]
  11198.    Dec PARABAZIONEP(AZIONE,P)
  11199.    If PARABAZIONEP(AZIONE,P)=0
  11200.     FINEA(AZIONE,P)=True
  11201.    End If 
  11202.    Exit 
  11203.   End If 
  11204.  Next A
  11205. End If 
  11206. End Proc
  11207. Procedure USAUNOASUPB[AZIONE,P]
  11208. A=PARABAZIONEP(AZIONE,P)
  11209. For B=0 To NUMEROO
  11210.  If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True and CATEGORIAO(B)=PARAAAZIONEP(AZIONE,P)
  11211.   If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11212.    Proc USASUPERSONAGGIOP[B,P,A]
  11213.    Exit 
  11214.   Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11215.    Proc USASUPERSONAGGIOP[B,P,A]
  11216.    Exit 
  11217.   Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11218.    Proc USASUPERSONAGGIOP[B,P,A]
  11219.    Exit 
  11220.   End If 
  11221.  End If 
  11222. Next B
  11223. End Proc
  11224. Procedure USAUNOTASUBO[AZIONE,P]
  11225. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11226. For A=0 To NUMEROO
  11227.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11228.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11229.   B=A
  11230.  End If 
  11231. Next A
  11232. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11233.  Pop Proc
  11234. End If 
  11235. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11236.  A=B
  11237. Else 
  11238.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11239.  B=0
  11240.  For A=0 To NUMEROO
  11241.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11242.    OGGETTODELPERSONAGGIOP(B)=A
  11243.    Inc B
  11244.   End If 
  11245.  Next A
  11246.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11247. End If 
  11248. For B=0 To NUMEROO
  11249.  If POSIZIONEO(B)=POSIZIONEP(P)
  11250.   USASUOGGETTOP[A,P,B]
  11251.   Dec PARABAZIONEP(AZIONE,P)
  11252.   If PARABAZIONEP(AZIONE,P)=0
  11253.    FINEA(AZIONE,P)=True
  11254.   End If 
  11255.   Exit 
  11256.  End If 
  11257. Next B
  11258. End Proc
  11259. Procedure USAUNOTASUBOC[AZIONE,P]
  11260. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11261. For A=0 To NUMEROO
  11262.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11263.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11264.   B=A
  11265.  End If 
  11266. Next A
  11267. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11268.  Pop Proc
  11269. End If 
  11270. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11271.  A=B
  11272. Else 
  11273.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11274.  B=0
  11275.  For A=0 To NUMEROO
  11276.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11277.    OGGETTODELPERSONAGGIOP(B)=A
  11278.    Inc B
  11279.   End If 
  11280.  Next A
  11281.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11282. End If 
  11283. For B=0 To NUMEROO
  11284.  If POSIZIONEO(B)=POSIZIONEP(P) and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11285.   USASUOGGETTOP[A,P,B]
  11286.   Dec PARABAZIONEP(AZIONE,P)
  11287.   If PARABAZIONEP(AZIONE,P)=0
  11288.    FINEA(AZIONE,P)=True
  11289.   End If 
  11290.   Exit 
  11291.  End If 
  11292. Next B
  11293. End Proc
  11294. Procedure USAUNOTASUBOTC[AZIONE,P]
  11295. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11296. For A=0 To NUMEROO
  11297.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11298.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11299.   B=A
  11300.  End If 
  11301. Next A
  11302. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11303.  Pop Proc
  11304. End If 
  11305. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11306.  A=B
  11307. Else 
  11308.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11309.  B=0
  11310.  For A=0 To NUMEROO
  11311.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11312.    OGGETTODELPERSONAGGIOP(B)=A
  11313.    Inc B
  11314.   End If 
  11315.  Next A
  11316.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11317. End If 
  11318. For B=0 To NUMEROO
  11319.  If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARACAZIONEP(AZIONE,P)
  11320.   USASUOGGETTOP[A,P,B]
  11321.   Dec PARABAZIONEP(AZIONE,P)
  11322.   If PARABAZIONEP(AZIONE,P)=0
  11323.    FINEA(AZIONE,P)=True
  11324.   End If 
  11325.   Exit 
  11326.  End If 
  11327. Next B
  11328. End Proc
  11329. Procedure USAUNOTASUBP[AZIONE,P]
  11330. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  11331. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11332.  PERSONAGGIOTROVATO=A
  11333. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11334.  PERSONAGGIOTROVATO=A
  11335. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11336.  PERSONAGGIOTROVATO=A
  11337. End If 
  11338. If PERSONAGGIOTROVATO>-1
  11339.  For A=0 To NUMEROO
  11340.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARAAAZIONEP(AZIONE,P)
  11341.    USASUPERSONAGGIOP[A,P,B]
  11342.    Dec PARABAZIONEP(AZIONE,P)
  11343.    If PARABAZIONEP(AZIONE,P)=0
  11344.     FINEA(AZIONE,P)=True
  11345.    End If 
  11346.    Exit 
  11347.   End If 
  11348.  Next A
  11349. End If 
  11350. End Proc
  11351. Procedure USAUNOTASUPB[AZIONE,P]
  11352. A=PARABAZIONEP(AZIONE,P)
  11353. For B=0 To NUMEROO
  11354.  If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True and TIPOCO(CATEGORIAO(B))=PARAAAZIONEP(AZIONE,P)
  11355.   If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11356.    Proc USASUPERSONAGGIOP[B,P,A]
  11357.    Exit 
  11358.   Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11359.    Proc USASUPERSONAGGIOP[B,P,A]
  11360.    Exit 
  11361.   Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11362.    Proc USASUPERSONAGGIOP[B,P,A]
  11363.    Exit 
  11364.   End If 
  11365.  End If 
  11366. Next B
  11367. End Proc
  11368. Procedure _ASPETTA
  11369. Wait 200
  11370. End Proc
  11371. Procedure _ORDINALUOGHI[NUMEROLUOGHIMAPPA,LARGHEZZAMAPPALUOGHI,LUOGODIPARTENZA,LIMITI]
  11372. Dim D(7)
  11373. D(0)=LARGHEZZAMAPPALUOGHI
  11374. D(1)=LARGHEZZAMAPPALUOGHI+1
  11375. D(2)=1
  11376. D(3)=-LARGHEZZAMAPPALUOGHI+1
  11377. D(4)=-LARGHEZZAMAPPALUOGHI
  11378. D(5)=-LARGHEZZAMAPPALUOGHI-1
  11379. D(6)=-1
  11380. D(7)=LARGHEZZAMAPPALUOGHI-1
  11381. For A=LUOGODIPARTENZA To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11382.  E=DREZIONEL(0,A)/$10000
  11383.  DREZIONEL(0,A)=D(0)+A+E*$10000
  11384.  E=DREZIONEL(1,A)/$10000
  11385.  DREZIONEL(1,A)=D(1)+A+E*$10000
  11386.  E=DREZIONEL(2,A)/$10000
  11387.  DREZIONEL(2,A)=D(2)+A+E*$10000
  11388.  E=DREZIONEL(3,A)/$10000
  11389.  DREZIONEL(3,A)=D(3)+A+E*$10000
  11390.  E=DREZIONEL(4,A)/$10000
  11391.  DREZIONEL(4,A)=D(4)+A+E*$10000
  11392.  E=DREZIONEL(5,A)/$10000
  11393.  DREZIONEL(5,A)=D(5)+A+E*$10000
  11394.  E=DREZIONEL(6,A)/$10000
  11395.  DREZIONEL(6,A)=D(6)+A+E*$10000
  11396.  E=DREZIONEL(7,A)/$10000
  11397.  DREZIONEL(7,A)=D(7)+A+E*$10000
  11398.  E=DREZIONEL(8,A)/$10000
  11399.  DREZIONEL(8,A)=$FFFF+E*$10000
  11400.  E=DREZIONEL(9,A)/$10000
  11401.  DREZIONEL(9,A)=$FFFF+E*$10000
  11402. Next A
  11403. If LIMITI=True
  11404.  For A=LUOGODIPARTENZA To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11405.   If A=LUOGODIPARTENZA
  11406.    E=DREZIONEL(0,A)/$10000
  11407.    DREZIONEL(0,A)=D(0)+LUOGODIPARTENZA+E*$10000
  11408.    E=DREZIONEL(1,A)/$10000
  11409.    DREZIONEL(1,0)=D(1)+LUOGODIPARTENZA+E*$10000
  11410.    E=DREZIONEL(2,A)/$10000
  11411.    DREZIONEL(2,0)=D(2)+LUOGODIPARTENZA+E*$10000
  11412.    E=DREZIONEL(3,A)/$10000
  11413.    DREZIONEL(3,A)=$FFFF+E*$10000
  11414.    E=DREZIONEL(4,A)/$10000
  11415.    DREZIONEL(4,A)=$FFFF+E*$10000
  11416.    E=DREZIONEL(5,A)/$10000
  11417.    DREZIONEL(5,A)=$FFFF+E*$10000
  11418.    E=DREZIONEL(6,A)/$10000
  11419.    DREZIONEL(6,A)=$FFFF+E*$10000
  11420.    E=DREZIONEL(7,A)/$10000
  11421.    DREZIONEL(7,A)=$FFFF+E*$10000
  11422.   End If 
  11423.   If A>LUOGODIPARTENZA and A<LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI
  11424.    If A=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1
  11425.     E=DREZIONEL(0,A)/$10000
  11426.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11427.     E=DREZIONEL(1,A)/$10000
  11428.     DREZIONEL(1,A)=$FFFF+E*$10000
  11429.     E=DREZIONEL(2,A)/$10000
  11430.     DREZIONEL(2,A)=$FFFF+E*$10000
  11431.     E=DREZIONEL(3,A)/$10000
  11432.     DREZIONEL(3,A)=$FFFF+E*$10000
  11433.     E=DREZIONEL(4,A)/$10000
  11434.     DREZIONEL(4,A)=$FFFF+E*$10000
  11435.     E=DREZIONEL(5,A)/$10000
  11436.     DREZIONEL(5,A)=$FFFF+E*$10000
  11437.     E=DREZIONEL(6,A)/$10000
  11438.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11439.     E=DREZIONEL(7,A)/$10000
  11440.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11441.    Else 
  11442.     E=DREZIONEL(0,A)/$10000
  11443.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11444.     E=DREZIONEL(1,A)/$10000
  11445.     DREZIONEL(1,A)=D(1)+A+E*$10000
  11446.     E=DREZIONEL(2,A)/$10000
  11447.     DREZIONEL(2,A)=D(2)+A+E*$10000
  11448.     E=DREZIONEL(3,A)/$10000
  11449.     DREZIONEL(3,A)=$FFFF+E*$10000
  11450.     E=DREZIONEL(4,A)/$10000
  11451.     DREZIONEL(4,A)=$FFFF+E*$10000
  11452.     E=DREZIONEL(5,A)/$10000
  11453.     DREZIONEL(5,A)=$FFFF+E*$10000
  11454.     E=DREZIONEL(6,A)/$10000
  11455.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11456.     E=DREZIONEL(7,A)/$10000
  11457.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11458.    End If 
  11459.   End If 
  11460.   For B=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI Step LARGHEZZAMAPPALUOGHI
  11461.    If A=B
  11462.     E=DREZIONEL(0,A)/$10000
  11463.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11464.     E=DREZIONEL(1,A)/$10000
  11465.     DREZIONEL(1,A)=D(1)+A+E*$10000
  11466.     E=DREZIONEL(2,A)/$10000
  11467.     DREZIONEL(2,A)=D(2)+A+E*$10000
  11468.     E=DREZIONEL(3,A)/$10000
  11469.     DREZIONEL(3,A)=D(3)+A+E*$10000
  11470.     E=DREZIONEL(4,A)/$10000
  11471.     DREZIONEL(4,A)=D(4)+A+E*$10000
  11472.     E=DREZIONEL(5,A)/$10000
  11473.     DREZIONEL(5,A)=$FFFF+E*$10000
  11474.     E=DREZIONEL(6,A)/$10000
  11475.     DREZIONEL(6,A)=$FFFF+E*$10000
  11476.     E=DREZIONEL(7,A)/$10000
  11477.     DREZIONEL(7,A)=$FFFF+E*$10000
  11478.    End If 
  11479.    If A=B+LARGHEZZAMAPPALUOGHI-1
  11480.     E=DREZIONEL(0,A)/$10000
  11481.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11482.     E=DREZIONEL(1,A)/$10000
  11483.     DREZIONEL(1,A)=$FFFF+E*$10000
  11484.     E=DREZIONEL(2,A)/$10000
  11485.     DREZIONEL(2,A)=$FFFF+E*$10000
  11486.     E=DREZIONEL(3,A)/$10000
  11487.     DREZIONEL(3,A)=$FFFF+E*$10000
  11488.     E=DREZIONEL(4,A)/$10000
  11489.     DREZIONEL(4,A)=D(4)+A+E*$10000
  11490.     E=DREZIONEL(5,A)/$10000
  11491.     DREZIONEL(5,A)=D(5)+A+E*$10000
  11492.     E=DREZIONEL(6,A)/$10000
  11493.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11494.     E=DREZIONEL(7,A)/$10000
  11495.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11496.    End If 
  11497.   Next B
  11498.   If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1
  11499.    E=DREZIONEL(0,A)/$10000
  11500.    DREZIONEL(0,A)=$FFFF+E*$10000
  11501.    E=DREZIONEL(1,A)/$10000
  11502.    DREZIONEL(1,A)=$FFFF+E*$10000
  11503.    E=DREZIONEL(2,A)/$10000
  11504.    DREZIONEL(2,A)=D(2)+A+E*$10000
  11505.    E=DREZIONEL(3,A)/$10000
  11506.    DREZIONEL(3,A)=D(3)+A+E*$10000
  11507.    E=DREZIONEL(4,A)/$10000
  11508.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11509.    E=DREZIONEL(5,A)/$10000
  11510.    DREZIONEL(5,A)=$FFFF+E*$10000
  11511.    E=DREZIONEL(6,A)/$10000
  11512.    DREZIONEL(6,A)=$FFFF+E*$10000
  11513.    E=DREZIONEL(7,A)/$10000
  11514.    DREZIONEL(7,A)=$FFFF+E*$10000
  11515.   End If 
  11516.   If A>LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1 and A<LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11517.    E=DREZIONEL(0,A)/$10000
  11518.    DREZIONEL(0,A)=$FFFF+E*$10000
  11519.    E=DREZIONEL(1,A)/$10000
  11520.    DREZIONEL(1,A)=$FFFF+E*$10000
  11521.    E=DREZIONEL(2,A)/$10000
  11522.    DREZIONEL(2,A)=D(2)+A+E*$10000
  11523.    E=DREZIONEL(3,A)/$10000
  11524.    DREZIONEL(3,A)=D(3)+A+E*$10000
  11525.    E=DREZIONEL(4,A)/$10000
  11526.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11527.    E=DREZIONEL(5,A)/$10000
  11528.    DREZIONEL(5,A)=D(5)+A+E*$10000
  11529.    E=DREZIONEL(6,A)/$10000
  11530.    DREZIONEL(6,A)=D(6)+A+E*$10000
  11531.    E=DREZIONEL(7,A)/$10000
  11532.    DREZIONEL(7,A)=$FFFF+E*$10000
  11533.   End If 
  11534.   If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11535.    E=DREZIONEL(0,A)/$10000
  11536.    DREZIONEL(0,A)=$FFFF+E*$10000
  11537.    E=DREZIONEL(1,A)/$10000
  11538.    DREZIONEL(1,A)=$FFFF+E*$10000
  11539.    E=DREZIONEL(2,A)/$10000
  11540.    DREZIONEL(2,A)=$FFFF+E*$10000
  11541.    E=DREZIONEL(3,A)/$10000
  11542.    DREZIONEL(3,A)=$FFFF+E*$10000
  11543.    E=DREZIONEL(4,A)/$10000
  11544.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11545.    E=DREZIONEL(5,A)/$10000
  11546.    DREZIONEL(5,A)=D(5)+A+E*$10000
  11547.    E=DREZIONEL(6,A)/$10000
  11548.    DREZIONEL(6,A)=D(6)+A+E*$10000
  11549.    E=DREZIONEL(7,A)/$10000
  11550.    DREZIONEL(7,A)=$FFFF+E*$10000
  11551.   End If 
  11552.  Next A
  11553. Else 
  11554.  For A=LUOGODIPARTENZA To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11555.   If A=LUOGODIPARTENZA
  11556.    E=DREZIONEL(0,A)/$10000
  11557.    DREZIONEL(0,A)=D(0)+LUOGODIPARTENZA+E*$10000
  11558.    E=DREZIONEL(1,A)/$10000
  11559.    DREZIONEL(1,0)=D(1)+LUOGODIPARTENZA+E*$10000
  11560.    E=DREZIONEL(2,A)/$10000
  11561.    DREZIONEL(2,0)=D(2)+LUOGODIPARTENZA+E*$10000
  11562.    E=DREZIONEL(3,A)/$10000
  11563.    DREZIONEL(3,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+2+E*$10000
  11564.    E=DREZIONEL(4,A)/$10000
  11565.    DREZIONEL(4,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1+E*$10000
  11566.    E=DREZIONEL(5,A)/$10000
  11567.    DREZIONEL(5,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA+E*$10000
  11568.    E=DREZIONEL(6,A)/$10000
  11569.    DREZIONEL(6,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  11570.    E=DREZIONEL(7,A)/$10000
  11571.    DREZIONEL(7,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI*2-1+E*$10000
  11572.   End If 
  11573.   If A>LUOGODIPARTENZA and A<LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI
  11574.    If A=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1
  11575.     E=DREZIONEL(0,A)/$10000
  11576.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11577.     E=DREZIONEL(1,A)/$10000
  11578.     DREZIONEL(1,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI+E*$10000
  11579.     E=DREZIONEL(2,A)/$10000
  11580.     DREZIONEL(2,A)=LUOGODIPARTENZA+E*$10000
  11581.     E=DREZIONEL(3,A)/$10000
  11582.     DREZIONEL(3,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1+E*$10000
  11583.     E=DREZIONEL(4,A)/$10000
  11584.     DREZIONEL(4,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA+E*$10000
  11585.     E=DREZIONEL(5,A)/$10000
  11586.     DREZIONEL(5,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-1+E*$10000
  11587.     E=DREZIONEL(6,A)/$10000
  11588.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11589.     E=DREZIONEL(7,A)/$10000
  11590.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11591.    Else 
  11592.     E=DREZIONEL(0,A)/$10000
  11593.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11594.     E=DREZIONEL(1,A)/$10000
  11595.     DREZIONEL(1,A)=D(1)+A+E*$10000
  11596.     E=DREZIONEL(2,A)/$10000
  11597.     DREZIONEL(2,A)=D(2)+A+E*$10000
  11598.     E=DREZIONEL(3,A)/$10000
  11599.     DREZIONEL(3,A)=A+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+2+E*$10000
  11600.     E=DREZIONEL(4,A)/$10000
  11601.     DREZIONEL(4,A)=A+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1+E*$10000
  11602.     E=DREZIONEL(5,A)/$10000
  11603.     DREZIONEL(5,A)=A+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+E*$10000
  11604.     E=DREZIONEL(6,A)/$10000
  11605.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11606.     E=DREZIONEL(7,A)/$10000
  11607.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11608.    End If 
  11609.   End If 
  11610.   For B=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI Step LARGHEZZAMAPPALUOGHI
  11611.    If A=B
  11612.     E=DREZIONEL(0,A)/$10000
  11613.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11614.     E=DREZIONEL(1,A)/$10000
  11615.     DREZIONEL(1,A)=D(1)+A+E*$10000
  11616.     E=DREZIONEL(2,A)/$10000
  11617.     DREZIONEL(2,A)=D(2)+A+E*$10000
  11618.     E=DREZIONEL(3,A)/$10000
  11619.     DREZIONEL(3,A)=D(3)+A+E*$10000
  11620.     E=DREZIONEL(4,A)/$10000
  11621.     DREZIONEL(4,A)=D(4)+A+E*$10000
  11622.     E=DREZIONEL(5,A)/$10000
  11623.     DREZIONEL(5,A)=A-1+E*$10000
  11624.     E=DREZIONEL(6,A)/$10000
  11625.     DREZIONEL(6,A)=A+LARGHEZZAMAPPALUOGHI-1+E*$10000
  11626.     E=DREZIONEL(7,A)/$10000
  11627.     DREZIONEL(7,A)=A+LARGHEZZAMAPPALUOGHI*2-1+E*$10000
  11628.    End If 
  11629.    If A=B+LARGHEZZAMAPPALUOGHI-1
  11630.     E=DREZIONEL(0,A)/$10000
  11631.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11632.     E=DREZIONEL(1,A)/$10000
  11633.     DREZIONEL(1,A)=A+1+E*$10000
  11634.     E=DREZIONEL(2,A)/$10000
  11635.     DREZIONEL(2,A)=A-LARGHEZZAMAPPALUOGHI+1+E*$10000
  11636.     E=DREZIONEL(3,A)/$10000
  11637.     DREZIONEL(3,A)=A-LARGHEZZAMAPPALUOGHI*2+1+E*$10000
  11638.     E=DREZIONEL(4,A)/$10000
  11639.     DREZIONEL(4,A)=D(4)+A+E*$10000
  11640.     E=DREZIONEL(5,A)/$10000
  11641.     DREZIONEL(5,A)=D(5)+A+E*$10000
  11642.     E=DREZIONEL(6,A)/$10000
  11643.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11644.     E=DREZIONEL(7,A)/$10000
  11645.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11646.    End If 
  11647.   Next B
  11648.   If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1
  11649.    E=DREZIONEL(0,A)/$10000
  11650.    DREZIONEL(0,A)=LUOGODIPARTENZA+E*$10000
  11651.    E=DREZIONEL(1,A)/$10000
  11652.    DREZIONEL(1,A)=LUOGODIPARTENZA+1+E*$10000
  11653.    E=DREZIONEL(2,A)/$10000
  11654.    DREZIONEL(2,A)=D(2)+A+E*$10000
  11655.    E=DREZIONEL(3,A)/$10000
  11656.    DREZIONEL(3,A)=D(3)+A+E*$10000
  11657.    E=DREZIONEL(4,A)/$10000
  11658.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11659.    E=DREZIONEL(5,A)/$10000
  11660.    DREZIONEL(5,A)=A-1+E*$10000
  11661.    E=DREZIONEL(6,A)/$10000
  11662.    DREZIONEL(6,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA+E*$10000
  11663.    E=DREZIONEL(7,A)/$10000
  11664.    DREZIONEL(7,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  11665.   End If 
  11666.   If A>LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1 and A<LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11667.    E=DREZIONEL(0,A)/$10000
  11668.    DREZIONEL(0,A)=A-NUMEROLUOGHIMAPPA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  11669.    E=DREZIONEL(1,A)/$10000
  11670.    DREZIONEL(1,A)=A-NUMEROLUOGHIMAPPA+LARGHEZZAMAPPALUOGHI+E*$10000
  11671.    E=DREZIONEL(2,A)/$10000
  11672.    DREZIONEL(2,A)=D(2)+A+E*$10000
  11673.    E=DREZIONEL(3,A)/$10000
  11674.    DREZIONEL(3,A)=D(3)+A+E*$10000
  11675.    E=DREZIONEL(4,A)/$10000
  11676.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11677.    E=DREZIONEL(5,A)/$10000
  11678.    DREZIONEL(5,A)=D(5)+A+E*$10000
  11679.    E=DREZIONEL(6,A)/$10000
  11680.    DREZIONEL(6,A)=D(6)+A+E*$10000
  11681.    E=DREZIONEL(7,A)/$10000
  11682.    DREZIONEL(7,A)=A-NUMEROLUOGHIMAPPA+LARGHEZZAMAPPALUOGHI-2+E*$10000
  11683.   End If 
  11684.   If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11685.    E=DREZIONEL(0,A)/$10000
  11686.    DREZIONEL(0,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  11687.    E=DREZIONEL(1,A)/$10000
  11688.    DREZIONEL(1,A)=LUOGODIPARTENZA+E*$10000
  11689.    E=DREZIONEL(2,A)/$10000
  11690.    DREZIONEL(2,A)=A-LARGHEZZAMAPPALUOGHI+1+E*$10000
  11691.    E=DREZIONEL(3,A)/$10000
  11692.    DREZIONEL(3,A)=A-LARGHEZZAMAPPALUOGHI*2+1+E*$10000
  11693.    E=DREZIONEL(4,A)/$10000
  11694.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11695.    E=DREZIONEL(5,A)/$10000
  11696.    DREZIONEL(5,A)=D(5)+A+E*$10000
  11697.    E=DREZIONEL(6,A)/$10000
  11698.    DREZIONEL(6,A)=D(6)+A+E*$10000
  11699.    E=DREZIONEL(7,A)/$10000
  11700.    DREZIONEL(7,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-2+E*$10000
  11701.   End If 
  11702.  Next A
  11703. End If 
  11704. End Proc
  11705. Procedure _ORDINASTANZE[E,NUMEROSTANZEMAPPA,LARGHEZZAMAPPASTANZE,STANZADIPARTENZA]
  11706. Dim D(7)
  11707. D(0)=LARGHEZZAMAPPASTANZE
  11708. D(1)=LARGHEZZAMAPPASTANZE+1
  11709. D(2)=1
  11710. D(3)=-LARGHEZZAMAPPASTANZE+1
  11711. D(4)=-LARGHEZZAMAPPASTANZE
  11712. D(5)=-LARGHEZZAMAPPASTANZE-1
  11713. D(6)=-1
  11714. D(7)=LARGHEZZAMAPPASTANZE-1
  11715. For A=STANZADIPARTENZA To STANZADIPARTENZA+NUMEROSTANZEMAPPA
  11716.  DREZIONES(0,A,E)=D(0)+A+E*$10000
  11717.  DREZIONES(1,A,E)=D(1)+A+E*$10000
  11718.  DREZIONES(2,A,E)=D(2)+A+E*$10000
  11719.  DREZIONES(3,A,E)=D(3)+A+E*$10000
  11720.  DREZIONES(4,A,E)=D(4)+A+E*$10000
  11721.  DREZIONES(5,A,E)=D(5)+A+E*$10000
  11722.  DREZIONES(6,A,E)=D(6)+A+E*$10000
  11723.  DREZIONES(7,A,E)=D(7)+A+E*$10000
  11724.  DREZIONES(8,A,E)=$FFFF+E*$10000
  11725.  DREZIONES(9,A,E)=$FFFF+E*$10000
  11726. Next A
  11727. For A=STANZADIPARTENZA To STANZADIPARTENZA+NUMEROSTANZEMAPPA
  11728.  If A=STANZADIPARTENZA
  11729.   DREZIONES(0,A,E)=D(0)+STANZADIPARTENZA+E*$10000
  11730.   DREZIONES(1,A,E)=D(1)+STANZADIPARTENZA+E*$10000
  11731.   DREZIONES(2,A,E)=D(2)+STANZADIPARTENZA+E*$10000
  11732.   DREZIONES(3,A,E)=$FFFF+E*$10000
  11733.   DREZIONES(4,A,E)=$FFFF+E*$10000
  11734.   DREZIONES(5,A,E)=$FFFF+E*$10000
  11735.   DREZIONES(6,A,E)=$FFFF+E*$10000
  11736.   DREZIONES(7,A,E)=$FFFF+E*$10000
  11737.  End If 
  11738.  If A>STANZADIPARTENZA and A<STANZADIPARTENZA+LARGHEZZAMAPPASTANZE
  11739.   If A=STANZADIPARTENZA+LARGHEZZAMAPPASTANZE-1
  11740.    DREZIONES(0,A,E)=D(0)+A+E*$10000
  11741.    DREZIONES(1,A,E)=$FFFF+E*$10000
  11742.    DREZIONES(2,A,E)=$FFFF+E*$10000
  11743.    DREZIONES(3,A,E)=$FFFF+E*$10000
  11744.    DREZIONES(4,A,E)=$FFFF+E*$10000
  11745.    DREZIONES(5,A,E)=$FFFF+E*$10000
  11746.    DREZIONES(6,A,E)=D(6)+A+E*$10000
  11747.    DREZIONES(7,A,E)=D(7)+A+E*$10000
  11748.   Else 
  11749.    DREZIONES(0,A,E)=D(0)+A+E*$10000
  11750.    DREZIONES(1,A,E)=D(1)+A+E*$10000
  11751.    DREZIONES(2,A,E)=D(2)+A+E*$10000
  11752.    DREZIONES(3,A,E)=$FFFF+E*$10000
  11753.    DREZIONES(4,A,E)=$FFFF+E*$10000
  11754.    DREZIONES(5,A,E)=$FFFF+E*$10000
  11755.    DREZIONES(6,A,E)=D(6)+A+E*$10000
  11756.    DREZIONES(7,A,E)=D(7)+A+E*$10000
  11757.   End If 
  11758.  End If 
  11759.  For B=STANZADIPARTENZA+LARGHEZZAMAPPASTANZE To STANZADIPARTENZA+NUMEROSTANZEMAPPA-LARGHEZZAMAPPASTANZE Step LARGHEZZAMAPPASTANZE
  11760.   If A=B
  11761.    DREZIONES(0,A,E)=D(0)+A+E*$10000
  11762.    DREZIONES(1,A,E)=D(1)+A+E*$10000
  11763.    DREZIONES(2,A,E)=D(2)+A+E*$10000
  11764.    DREZIONES(3,A,E)=D(3)+A+E*$10000
  11765.    DREZIONES(4,A,E)=D(4)+A+E*$10000
  11766.    DREZIONES(5,A,E)=$FFFF+E*$10000
  11767.    DREZIONES(6,A,E)=$FFFF+E*$10000
  11768.    DREZIONES(7,A,E)=$FFFF+E*$10000
  11769.   End If 
  11770.   If A=B+LARGHEZZAMAPPASTANZE-1
  11771.    DREZIONES(0,A,E)=D(0)+A+E*$10000
  11772.    DREZIONES(1,A,E)=$FFFF+E*$10000
  11773.    DREZIONES(2,A,E)=$FFFF+E*$10000
  11774.    DREZIONES(3,A,E)=$FFFF+E*$10000
  11775.    DREZIONES(4,A,E)=D(4)+A+E*$10000
  11776.    DREZIONES(5,A,E)=D(5)+A+E*$10000
  11777.    DREZIONES(6,A,E)=D(6)+A+E*$10000
  11778.    DREZIONES(7,A,E)=D(7)+A+E*$10000
  11779.   End If 
  11780.  Next B
  11781.  If A=STANZADIPARTENZA+NUMEROSTANZEMAPPA-LARGHEZZAMAPPASTANZE+1
  11782.   DREZIONES(0,A,E)=$FFFF+E*$10000
  11783.   DREZIONES(1,A,E)=$FFFF+E*$10000
  11784.   DREZIONES(2,A,E)=D(2)+A+E*$10000
  11785.   DREZIONES(3,A,E)=D(3)+A+E*$10000
  11786.   DREZIONES(4,A,E)=D(4)+A+E*$10000
  11787.   DREZIONES(5,A,E)=$FFFF+E*$10000
  11788.   DREZIONES(6,A,E)=$FFFF+E*$10000
  11789.   DREZIONES(7,A,E)=$FFFF+E*$10000
  11790.  End If 
  11791.  If A>STANZADIPARTENZA+NUMEROSTANZEMAPPA-LARGHEZZAMAPPASTANZE+1 and A<STANZADIPARTENZA+NUMEROSTANZEMAPPA
  11792.   DREZIONES(0,A,E)=$FFFF+E*$10000
  11793.   DREZIONES(1,A,E)=$FFFF+E*$10000
  11794.   DREZIONES(2,A,E)=D(2)+A+E*$10000
  11795.   DREZIONES(3,A,E)=D(3)+A+E*$10000
  11796.   DREZIONES(4,A,E)=D(4)+A+E*$10000
  11797.   DREZIONES(5,A,E)=D(5)+A+E*$10000
  11798.   DREZIONES(6,A,E)=D(6)+A+E*$10000
  11799.   DREZIONES(7,A,E)=$FFFF+E*$10000
  11800.  End If 
  11801.  If A=STANZADIPARTENZA+NUMEROSTANZEMAPPA
  11802.   DREZIONES(0,A,E)=$FFFF+E*$10000
  11803.   DREZIONES(1,A,E)=$FFFF+E*$10000
  11804.   DREZIONES(2,A,E)=$FFFF+E*$10000
  11805.   DREZIONES(3,A,E)=$FFFF+E*$10000
  11806.   DREZIONES(4,A,E)=D(4)+A+E*$10000
  11807.   DREZIONES(5,A,E)=D(5)+A+E*$10000
  11808.   DREZIONES(6,A,E)=D(6)+A+E*$10000
  11809.   DREZIONES(7,A,E)=$FFFF+E*$10000
  11810.  End If 
  11811. Next A
  11812. End Proc